通过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 有关分组聚合问题?
1615浏览 • 1回复 待解决
PolarDB 如何写入块?
1028浏览 • 1回复 待解决
如何设置组件最大最小宽度高度
346浏览 • 1回复 待解决
安装hb时候,输入hb -h结果如下
6036浏览 • 2回复 待解决
在dolphindb中怎么对查询结果分页?
639浏览 • 1回复 待解决
JS中input文本对齐如何实现?
6425浏览 • 1回复 待解决
求教sql语句里传参怎么
1627浏览 • 1回复 待解决
inner join 左右顺序为何不影响结果
995浏览 • 1回复 待解决