假设您有以下名为
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 语言没有发展到允许上面的查询找到结果有什么具体原因吗?
如果您收到错误“city.idt”无效... 这是因为当你在sql中使用MAX或SUM或其他类似函数时 您应该指定您想要分组的其他列 例如
SELECT MAX(cost), market FROM city GROUP BY market
所以我们想要市场,所以我们应该在 group by 中指定它