我有下面两个表学生和考试: 学生表:
Id Name
1 Samantha
2 Jane
3 Bob
4 Scarlet
5 David
Run Code Online (Sandbox Code Playgroud)
考试:
student_id subject
1 Biology
1 physics
3 history
4 geography
4 geography
Run Code Online (Sandbox Code Playgroud)
现在我需要找出哪个学生参加了哪次考试多少次,我期望的确切结果是:
student.id examination.subject no_of_times
1 biology 1
1 physics 1
3 history 1
4 geography 2
Run Code Online (Sandbox Code Playgroud)
我尝试过以下查询,但得到了错误的答案:
select Student.id, examination.subject, count(*) from Student join examination Student.id = examination.student_id;
Run Code Online (Sandbox Code Playgroud)
请帮助我编写正确的查询以获得正确的预期输出!
谢谢你!
对于您的确切查询,我们甚至不需要加入,我们可以只使用第二个Examination表:
SELECT student_id, subject, COUNT(*) AS no_of_times
FROM Examination
GROUP BY student_id, subject;
Run Code Online (Sandbox Code Playgroud)