SQL:分组以选择最大观察值

问题描述 投票:0回答:1

假设您有以下名为

city
的表:

市场 产品 成本
A 1 54
A 2 62
A 3 38
B 1 12
B 2 12
B 3 5

我需要每个市场最昂贵的产品,即:

市场 产品 成本
A 2 62
B 1 12
B 2 12

我知道这个 SQL 查询不起作用:

SELECT *, MAX(cost)
FROM city
GROUP BY market

重点不是找到解决方案(我认为这很容易)。

我的问题:SQL 语言没有发展到允许上面的查询找到结果有什么具体原因吗?

sql postgresql group-by max
1个回答
0
投票

如果您收到错误“city.idt”无效... 这是因为当你在sql中使用MAX或SUM或其他类似函数时 您应该指定您想要分组的其他列 例如

SELECT MAX(cost), market FROM city GROUP BY market

所以我们想要市场,所以我们应该在 group by 中指定它

© www.soinside.com 2019 - 2024. All rights reserved.