问题描述
我想编写一个查询,返回完成项目最多的学生的姓名以及项目的数量。我希望查询返回这样的表:
学生姓名 | max_project_count |
---|---|
约翰·多伊 | 2 |
安娜多 | 2 |
这是我到目前为止的代码,但它只给了我 2 个列名 student_name 和 count,而不是结果。
SELECT s.student_name,COUNT(student_name)
FROM student s
GROUP BY student_name
HAVING COUNT(student_name) = (
SELECT MAX(count)
FROM (SELECT s.student_name,COUNT(*) AS count
FROM student_project k,student s
WHERE s.student_id = k.student_id
GROUP BY student_name) AS foo)
我现在的结果:
学生姓名 | max_project_count |
---|
这些是我的数据库中的表:
学生
student_id | 学生姓名 |
---|---|
jd123 | 约翰·多伊 |
ad456 | 安娜多 |
js678 | 杰斯·史密斯 |
dk789 | 丹尼尔·金 |
school_project
project_id | project_name |
---|---|
math_1023 | 数学竞赛 |
sci_9872 | 科学竞赛 |
student_project
student_id | project_id |
---|---|
jd123 | math_1023 |
ad456 | math_1023 |
jd123 | sci_9872 |
ad456 | sci_9872 |
js678 | sci_9872 |
dk789 | sci_9872 |
解决方法
XYZ> test (suite: XYZ-test)
MyModule.fun1 #1: [OK]
MyModule.fun1 #2: [OK]
...
... : [OK]
... : [OK]
... : [OK]
Properties Test Cases Total
Passed 1 71 72
Failed 0 0 0
Total 1 71 72
XYZ> Test suite XYZ-test passed
Completed 2 action(s).