【发布时间】:2012-06-17 22:47:23
【问题描述】:
我有以下表格(球员、赛事、分数)
我想要一份每个球员在 2012 年获得多少积分的列表。 我希望列表中包含所有球员,即使有些球员在 2012 年还没有参加比赛。
所以理论上它应该打印:
Ola Hansen 6
Tove Svendson 0
Kari Pettersen 0
我试过了:
SELECT *, sum(Points) as Points FROM Players
LEFT OUTER JOIN Scores ON P_Id=Player
LEFT OUTER JOIN Events ON Event=E_Id AND Year='2012'
GROUP by P_Id ORDER by Points DESC
但这算了所有年份的所有分数。
【问题讨论】:
-
我猜这是 MySQL,因为没有其他 RDBMS 会允许这种可怕的
GROUP BY和聚合?