簡體   English   中英

如何獲取另一個表對應的值?

[英]How to get the values corresponding to another table?

我是 SQL 的新手,對如何編寫查詢以便在不同的表中獲取 state 的計數感到有點困惑。

即我有這張桌子[學生]

ID 學校代碼
0 0123
1個 2345
2個 2345

還有這張桌子[學校]

學校代碼 名稱 State
0123 xxyy 新Jersey
2345 木木 華盛頓
3456 yxyx 科拉多

我想了解如何通過檢查每個學生並計算 state 出現的頻率(按學生表中出現次數最多的順序排序)來獲取此表,該表告訴我 state 的條目。

State 發生次數(遍歷學生)
華盛頓 2個
新Jersey 1個
SELECT school.state, count(school.state)
FROM student, school
WHERE student.school_code = school.school_code
GROUP BY school.state
ORDER BY count(school.state)`

我不確定這是否會遍歷每個學生並計算他們? 或者只是自然加入學生和學校,然后計算所有州

當我在提供的數據上運行它時,發生的次數非常少,這似乎不對?

我們可以簡單地連接兩個表並COUNT學生表中的學校代碼,使用GROUP BY JOIN

SELECT
sc.state, COUNT(st.school_code)
FROM
school sc
JOIN student st
ON sc.school_code = st.school_code
GROUP BY sc.state;

我們可以在這里試試: db<>fiddle

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM