SUM SQL多个表GROUP BY

时间:2017-09-26 07:40:53

标签: mysql sql sum

你好,我似乎无法回答这个问题。

enter image description here

问题是: 3.5对于赢得奖品的每匹马,列出马名,horse_id和赢得的总奖金。

尝试过:

SELECT horse_name, horse.horse_id, SUM(prizemoney) 
FROM horse 
JOIN entry ON entry.horse_id=horse.horse_id 
JOIN prize ON entry.event_id=prize.event_code 
GROUP BY horse_name

没有得到正确的答案

这是我的答案:

enter image description here

这是老师的回答:

enter image description here

1 个答案:

答案 0 :(得分:0)

如果您忽略了联接中的PLACE,那么您将得到错误的答案。在连接逻辑中包含PLACE!

SELECT horse_name, horse.horse_id, SUM(prizemoney) 
FROM horse 
JOIN entry ON entry.horse_id=horse.horse_id 
JOIN prize ON entry.event_id=prize.event_code 
          AND entry.place = prize.place
GROUP BY horse_name, horse.horse_id

另外:通过子句

包括所有非聚合列