mysql最后一个记录的记录,其中包含其他人和group by的总和

时间:2014-04-11 00:58:50

标签: mysql sum greatest-n-per-group

表格如下:

id ||    name    ||  team    ||  goals  ||  data
1  ||    Kitten  || Pets     ||  3      ||  12
2   ||   Dog     ||  Pets    ||  2      ||  11
3   ||  Kitten   || Animals  ||  5      ||   6
4   ||  Kitten   || Cats     ||  4      ||   3
5   ||  Dog      ||  Pets    ||  2      ||   9

我的基本查询是: SELECT名称,团队,SUM(目标),SUM(数据)FROM表GROUP BY名称

结果如下:

name    ||  team ||  sum(goals) ||  sum(data)
Kitten  || Pets  ||    12       ||   21
Dog     || Pets  ||     4       ||   20

我希望能够获得最新的团队(最高ID),但到目前为止,我所能得到的是第一个列出查询的团队。我可以通过使用min(团队)或max(团队)按字母顺序获得第一个或最后一个团队,但这并不总能提供我需要的最后一个记录。救命?另外,抱歉,我不知道如何在这里很好地格式化。

2 个答案:

答案 0 :(得分:0)

有不同的方法可以做到这一点,但这里有一个。

您可以像这样获得每个团队的最新记录:

select * from table where id in(select max(id) from table group by team)

答案 1 :(得分:0)

我认为这可能是你要求的:

SELECT name, team, SUM(goals), SUM(data)
FROM table t1
JOIN (SELECT team
      FROM table
      ORDER BY id DESC
      LIMIT 1) t2
ON t1.team = t2.team
GROUP BY name