gpt4 book ai didi

mysql - 我能否获得行的 SUM() 的第二大值(使用 COUNT())?

转载 作者:行者123 更新时间:2023-11-28 23:33:24 25 4
gpt4 key购买 nike

我在这个网站上找到了这些问题的单独答案,但我想知道这些问题是否可以合并为一个查询。

我有一个 FollowsCourse 表,其中包含 CourseID 和 StudentID。我想通过计算每个 CourseID 的 StudentID 的行总和来获得学生数量,然后获得结果输出的第二大值。

我不知道从哪里开始,所以非常感谢您的帮助!

编辑

请原谅我没有添加代码或想要的结果。我会尽力澄清!

在问这个问题时我忘了补充说我不会使用 LIMIT(而且它是可选参数 OFFSET)

期望的结果是:

    Example Table FollowsCourse
| StudentID | CourseID |
| 1 | 1 |
| 2 | 1 |
| 3 | 2 |
| 4 | 2 |
| 5 | 2 |
| 6 | 1 |
| 7 | 1 |
| 8 | 3 |

result:
| CourseID | Sum of Count |
| 1 | 4 |
| 2 | 3 |
| 3 | 1 |

然后我需要以某种方式获得具有第二大计数总和的 CourseID(因此在本例中为 CourseID 2。

PS 我没有太多提问的经验,所以感谢您指出我应该添加更多关于我的问题的信息。

最佳答案

作为阿隆 pointed out您需要使用 LIMIT 1,1。当然还需要分组和计数。

SELECT courseid, 
Count(studentid)
FROM followscourse
GROUP BY courseid
ORDER BY Count(studentid) DESC
LIMIT 1, 1

DEMO

您也可以使用行号技术来做到这一点,但它要复杂得多,通常只用于 。问题

SELECT 
courseid,
kount
FROM

( SELECT @num := @num + 1 AS row_number,
courseid,
kount

FROM (
SELECT courseid,
Count(studentid) kount
FROM followscourse
GROUP BY courseid
ORDER BY Count(studentid) DESC ) AS data
CROSS JOIN
(
SELECT @num := 0 ) rn ) as t
WHERE
row_number = 2

DEMO

关于mysql - 我能否获得行的 SUM() 的第二大值(使用 COUNT())?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36604466/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com