[英]How to get number of students per course in sql?
所以我有這3個表:
t_student看起來像這樣:
STUDENT_ID| FIRST_NAME |LAST_NAME
-----------------------------------
1 | Ivan | Petrov
2 | Ivan | Ivanov
3 | Georgi | Georgiev
t_course看起來像這樣:
course_id | NAME |LECTURER_NAME
-----------------------------------
1 | Basics | Vasilev
2 | Photography| Loyns
t_enrolment看起來像這樣:
enrolment_id| student_fk |course_fk | Avarage_grade
-------------------------------------------------------
1 | 1 | 1 |
2 | 3 | 1 |
3 | 4 | 1 |
4 | 2 | 1 |
5 | 1 | 2 | 5.50
6 | 2 | 2 | 5.40
7 | 5 | 2 | 6.00
我需要制作“選擇”聲明並顯示每門課程的學生人數。 結果應該是:
Count_students | Course_name
-----------------------------
4 | Basics
3 | Photography
從課程表中選擇所有課程,加入注冊表並按課程ID分組。 使用count(),您可以選擇學生人數
SELECT MAX(t_course.NAME) AS Course_name, COUNT(t_enrolment.student_fk) AS Count_students
FROM t_course
LEFT JOIN t_enrolment ON t_enrolment.course_fk = t_course.course_id
GROUP BY t_course.course_id;
如果您只想在一個課程中選擇同一個學生一次(如果可以進行多次注冊),您可以使用COUNT(DISTINCT t_enrolment.student_fk)
UPDATE
為了使它不僅在mySQL中工作,我在name列中添加了一個聚合函數。
根據您使用的SQL數據庫,您必須添加引號或反引號。
這是你的作業嗎?
select count(*) Count_students, c.name as course_name from t_enrolment e, t_course c group where e.course_fk = c.course_id by c.name
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.