题解 | #对试卷得分做min-max归一化#

对试卷得分做min-max归一化

https://www.nowcoder.com/practice/2b7acdc7d1b9435bac377c1dcb3085d6

# 先对每个试卷进行分数的归一化计算,然后按用户和试卷进行分组,计算均值,只保留整数

WITH temp_0 AS(
    SELECT b.id, b.uid, a.exam_id, b.score,
        MAX(score) OVER(PARTITION BY exam_id) max_score, 
        MIN(score) OVER(PARTITION BY exam_id) min_score
    FROM examination_info a
        JOIN exam_record b USING(exam_id)
    WHERE a.difficulty = 'hard' AND b.score IS NOT NULL
    )
    ,temp_2 AS(
    SELECT a.id, a.uid, a.exam_id, a.score, a.max_score, a.min_score, 
            IF(a.max_score = a.min_score, a.score, (a.score - a.min_score) * 100 / (a.max_score - a.min_score)) z_score
            # (a.score - b.min_score) * 100 / (b.max_score - b.min_score)  z_score
    FROM temp_0 a
        
    )


SELECT uid, exam_id, ROUND(AVG(z_score), 0) avg_new_score
FROM temp_2
GROUP BY uid, exam_id
ORDER BY exam_id, avg_new_score DESC

踩的坑:

题目解释中提到 如果某个试卷作答记录中只有一个得分,那么无需使用公式,归一化并缩放后分数仍为原分数,我还以为是使用公式后还是原分数。一直报错用例过不了才溯源到这个问题。 ——如果只有一个得分,还使用该公式,那就成0分了!

我还一直在想是不是取整的问题,说到这,取整也有好几种,最常见的是round,返回离X最近的整数,截断时要进行四舍五入

FLOOR(X)函数 返回不大于X的最大整数,如1.8返回1

CEIL(X)、CEILING(X)函数 返回不小于X的最小整数。 如1.8 返回2

TRUNCATE(X,D)函数 返回数值X保留到小数点后D位的值,截断时不进行四舍五入。

FORMAT(X,D)函数 将数字X格式化,将X保留到小数点后D位,截断时要进行四舍五入。

思路:

1.链接两个表,筛选出高难度试题和作答完成的记录。使用聚合窗口函数提取出每个试卷的最值

2.基于上表,计算出归一化后的值,当然如果只有一个得分,就返回原值

3.最后主查询提取出平均值取整,分组,排序

全部评论

相关推荐

不愿透露姓名的神秘牛友
2024-12-18 15:35
程序员牛肉:完全是在胡写简历。 我很好奇你干嘛要在教育经历里面写你是软件二班的班长?你写它的目的是什么?我觉得真的就是很突兀。给我第一感觉就是:你真的是一个心智健全的成年人吗? 另外我也很好奇你是怎么做到参加了这么多所谓的计算机比赛,完事儿一个拿得出手的项目都没有。 自己的项目经历还是图书馆管理系统这种垃圾东西……我的的建议是你都不如大幅度删减一下自己的水奖项,看着真的给人一种又水又学傻了的感觉。 计算机不看奖项,看院校和个人能力。 计算机是强工科,你要投后端的你就应该明白,人家招你进去是指望你干活儿的。那你觉得你这份简历有展示出你的后端水平吗? 你动动你的脑子想一想,人家面试官要想通过你的简历看出你的项目开发能力,最重要的板块就是两个,第一个是你的实习,第二个是你的项目。你没有实习,是不是就应该在项目上好好琢磨琢磨? 你自己看看你项目写的什么描述,你作为一个要后端岗位的应届生,你对你自己项目的描述还仅仅停留在使用mySQL,使用JAVA,使用spring boot框架。给人一眼感觉就感觉完全就是你做的玩具。可能就是你哪一个学期做的课设。 对于应届生来讲,在项目板块要尽量突出自己的技术能力,因为谈业务你肯定也不懂。简单来讲,你的项目要清晰准确的表达:你用哪种技术解决了现有的哪种技术问题,带来了多少的效益提升? 所有关于项目的描述都围绕我说的这种表达方式去写。不要自己自嗨式的写一堆垃圾上去 你既没有实习项目,又没有一个比较好一点的项目,而且院校也比较差,所以找工作会异常的难找。
点赞 评论 收藏
分享
雨夜迈巴赫:哪个厂呀
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务