通过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 有关分组聚合问题?
1325浏览 • 1回复 待解决
PolarDB 如何写入块?
723浏览 • 1回复 待解决
JS中input文本对齐如何实现?
5785浏览 • 1回复 待解决
安装hb时候,输入hb -h结果如下
5543浏览 • 2回复 待解决
在dolphindb中怎么对查询结果分页?
293浏览 • 1回复 待解决
inner join 左右顺序为何不影响结果
706浏览 • 1回复 待解决
求教sql语句里传参怎么
1204浏览 • 1回复 待解决
10对-3取余结果是1还是-2?
1053浏览 • 1回复 待解决
sql 如何约束多列中所有均不同?
833浏览 • 1回复 待解决
mysql多对多查询sql怎么
279浏览 • 1回复 待解决
如何找出Redis中大Key与热Key?
757浏览 • 1回复 待解决
如果通过Mock单元测试Mybatis中SQL
739浏览 • 1回复 待解决