從最近的一次訪談中發現了這個問題。SQL根據匹配對隊伍進行排名
兩個表
create table teams {
team_id,
team_name
};
create table matches {
match_id,
host_team,
guest_team,
host_goals,
guest_goals
};
的打分規則是:贏= 3分,畫出= 1分,失去= 0分。
如何編寫一個SQL查詢來根據他們的分數對所有團隊進行排名?
例如
team_id | team_name
---------+---------------
10 | A
20 | B
30 | C
40 | D
50 | E
比賽
match_id | host_team | guest_team | host_goals | guest_goals
----------+-----------+------------+------------+-------------
1 | 30 | 20 | 1 | 0
2 | 10 | 20 | 1 | 2
3 | 20 | 50 | 2 | 2
4 | 10 | 30 | 1 | 0
5 | 30 | 50 | 0 | 1
查詢應該返回
team_id | team_name | num_points
---------+-----------+------------
20 | B | 4
50 | E | 4
10 | A | 3
30 | C | 3
40 | D | 0
你一定嘗試過什麼嗎? –
@GordonLinoff SQL並不是我的強項,我很肯定我的面試失敗主要是因爲這個問題。只是想得到一些想法。 – ddd
可以顯示樣本輸入數據和預期結果 – Saif