mysql一列的最后一条记录,包括其他列和group by的总和
表如下所示:mysql一列的最后一条记录,包括其他列和group by的总和,mysql,sum,greatest-n-per-group,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 ||
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 * from table where id in(select max(id) from table group by team)
我的基本问题是:
按名称从表组中选择名称、团队、总和(目标)、总和(数据)
结果如下:
name || team || sum(goals) || sum(data)
Kitten || Pets || 12 || 21
Dog || Pets || 4 || 20
我希望能够获得最新的团队(最高id),但到目前为止,我所能获得的只是列出的第一个团队以及编写的查询。我可以使用min(team)或max(team)按字母顺序获得第一个或最后一个团队,但这并不总是给出我需要的最后一个记录。帮忙?另外,很抱歉,我不知道如何在这里设置好格式。有不同的方法,但这里有一种 您可以获得每个团队的最新记录,如下所示:
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 * from table where id in(select max(id) from table group by team)
我想这可能是你想要的:
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
你的问题有点让人困惑,你想得到
目标
和数据
的总和
和最高的ID
?如果是这样,您可以使用SELECT MAX(id)、name、team、SUM(goals)、SUM(data)…
来维护格式,粘贴文本,用鼠标标记,然后使用{}
或Ctl-k
将其标记为代码。只需确保在原始文本中不使用TAB,因为SO的制表位可能与您的制表位不同。