我想在我的查询中建立一个排名列——我在堆栈中发现了一些类似的情况,但这个有点不同,我不能完全让它工作。我有一个表,enrollmentx,有两列,一个惟一的studentid和一个groupid(为了便于讨论,groups 1:3)。我需要同时计算这三个小组中每个小组的学生人数,然后按学生人数对小组进行排名。我已经数到了:
SELECT
EnrollmentX.GroupId,
COUNT(EnrollmentX.StudentId) AS StudentCnt
FROM EnrollmentX
GROUP BY
EnrollmentX.GroupId
这将显示两列,一列为groupid,1:3,另一列为studentcnt,每个组中的学生数正确。我无法解决的是如何在构建studentcnt列之后使用它来创建第三个排名列。
3条答案
按热度按时间im9ewurl1#
如果您使用的是mysql 8,那么会有更多可读的选项。如果您想要不同的排名,请更改内部查询中的顺序。
3duebb1j2#
尝试此查询:
wvmv3b1j3#
试试看。。