我有一个表“产品”,其中包含“名称”和价格“列。”同名的价格有多个。表格如下
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);
注意:我的问题不是那个,但我想知道解决方案背后的逻辑。感谢。
答案 0 :(得分:3)
使用group by name
为每个不同的名称创建一个或多个行。然后,您可以选择name
(因为组中的每一行都具有相同的名称。)该组具有多个价格,您可以使用聚合函数max()
来检索该组的最高价格。
select name
, max(price) as MaxPrice
from Products
group by
name