gpt4 book ai didi

mysql - 带聚合的 SQL GROUP BY

转载 作者:行者123 更新时间:2023-11-29 01:14:24 25 4
gpt4 key购买 nike

如果我有一个包含数据的表格 Numbers:

+------+------+------+------+
| colA | colB | colC | colD |
+------+------+------+------+
| 1 | 2 | 3 | 4 |
| 1 | 2 | 9 | 5 |
+------+------+------+------+

并做:

select colA, colB, colC, MAX(colD) FROM Numbers GROUP BY colA, colB;

我相信它应该返回第 2 行。它按 colA, colB 分组并选择 colD 中最大的一个。

不幸的是,这不起作用,因为您还必须按 colC 分组才能返回它。

为什么?有没有其他方法可以完成我想做的事情?

我想要在 colAcolB 中具有相同但在 colD 中最大的行。

最佳答案

有几种方法可以解决这个问题。也许最简单的方法是针对执行 colA, colB 组的子查询执行 JOIN,并从中找到完整的对应行。

SELECT 
tbl.colA,
tbl.colB,
tbl.colC,
tbl.colD
FROM tbl JOIN (
SELECT
colA,
colB,
MAX(colD) AS maxD
FROM tbl
GROUP BY colA, colB
) g ON tbl.colA = g.colA AND tbl.colB = g.colB AND tbl.colD = g.maxD

关于mysql - 带聚合的 SQL GROUP BY,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9294278/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com