通过COUNT聚合分组出临时结果集,再从结果集中找出COUNT值最大的一行,该如何写SQL?

我想先通过count函数以及group by家庭作业ID、学生ID统计出每个学生做的每个家庭作业错误的总数量。然后根据总数量,得到每个学生错误数量最多的那一条记录。下面这个SQL,查出来的数据不准确。这样的SQL,该如何写?感谢

SELECT MAX(o.total),o.homework_id,o.student_id FROM (
     SELECT COUNT(id) AS total,homework_id,student_id FROM `homework_wrong_practices` WHERE `date` = 201911 AND `week` = 48 GROUP BY homework_id, student_id
) AS o GROUP BY o.student_id;
sql
mysql
2023-09-08 12:57:24
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
疑惑的冒险者

在子查询中加个排序规则

order by total desc

homework_id 会取子查询中各 student_id 对应的第一条记录的 homework_id,
所以我们先帮子查询排逆序就能保证拿到的是最大 total 对应的 homework_id

回复


分享
微博
QQ
微信
回复
2023-09-08 14:17:10
相关问题
请教 sql 有关分组聚合问题?
3253浏览 • 1回复 待解决
#鸿蒙学习大百科#结果是什么?
125浏览 • 0回复 待解决
PolarDB 如何写入块?
2925浏览 • 1回复 待解决
RdbPredicates能否支持查询 count 功能?
162浏览 • 1回复 待解决
如何写har包编译脚本?
864浏览 • 1回复 待解决
视频解码结果通过到vulkan渲染
1605浏览 • 1回复 待解决
如何设置组件最大最小宽度高度
3066浏览 • 1回复 待解决