wxf666
2022-08-03 08:43:56 +08:00
『 SQLite 测试通过(排版原因,每行代码开头有 _ 和 全角空格)』
WITH
orig_data(class, stu, course) AS (
VALUES
('1 班', '学生甲', '语文'), ('2 班', '戊', '语文'), ('3 班', '辛', '语文'),
('1 班', '学生乙', '语文'), ('2 班', '己', '语文'), ('3 班', '壬', '数学'),
('1 班', '学生丙', '数学'), ('2 班', '庚', '数学'), ('3 班', '癸', '数学'),
('1 班', '学生丁', '数学')
),
table_with_rank(class, course, rank) AS (
SELECT class, course, RANK() OVER (PARTITION BY class ORDER BY COUNT(*) DESC) rank
FROM orig_data
_ GROUP BY class, course
)
SELECT class, GROUP_CONCAT(course) courses
FROM table_with_rank
_WHERE rank = 1
_GROUP BY class
『结果(可能出现多个并列第一的课程,此时用「,」分隔)』
class courses
----- -------
1 班 语文,数学
2 班 语文
3 班 数学