我在MySQL中發現一個問題我在嘗試。請告訴我下面的解決方案是否可以工作,或者有更好的解決方案嗎?部門名稱和學生人數
select D.DEPT_NAME, COUNT(*)
from Departments D
left outer join STUDENTS S
on S.Dept_ID = D.Dept_ID
group by D.DEPT_NAME
order by 2 desc, 1
學生表具有以下字段:
Student_ID
Student_Name
Gender
Dept_ID
部門表具有以下字段:
Dept_ID
Dept_Name
甲大學使用2數據表,學生和部門, 存儲關於數據的學生和與每個專業相關的部門。
編寫一個查詢,打印相應的部門名稱和(甚至是那些沒有在校學生)的學生 每個部門的專業在Departments表 各部門的數量。
按照學號下降的學校排序你的結果;如果兩個或更多部門的學生數量相同,則按部門名稱的字母順序對這些部門進行排序。
可能的問題是'COUNT(*)'。如果部門沒有學生,它會返回什麼?我想這將是1,因爲該部門有一條線。 –
我是對的,請參閱http://sqlfiddle.com/#!15/39a8b/1/0 - 2個部門(數學和物理)沒有學生,您的查詢顯示爲他們計數1。 –
@ marek.jancuska你能告訴我哪個SQL查詢可以工作嗎? – SolakiR