选择具有sql中一组行的最大值的行

时间:2014-06-06 12:39:46

标签: mysql groupwise-maximum

我有一个表“产品”,其中包含“名称”和价格“列。”同名的价格有多个。表格如下

shampoo 7
shampoo 10
shampoo 8
bread   1
bread   1.5
water   0.5
water   0.7
......

我想要最高价格的行。我试过了

select name, price
from products
group by name
having max(price);

注意:我的问题不是那个,但我想知道解决方案背后的逻辑。感谢。

1 个答案:

答案 0 :(得分:3)

使用group by name为每个不同的名称创建一个或多个行。然后,您可以选择name(因为组中的每一行都具有相同的名称。)该组具有多个价格,您可以使用聚合函数max()来检索该组的最高价格。

select  name
,       max(price) as MaxPrice
from    Products
group by
        name