表格如下:
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(团队)按字母顺序获得第一个或最后一个团队,但这并不总能提供我需要的最后一个记录。救命?另外,抱歉,我不知道如何在这里很好地格式化。
答案 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