繁体   English   中英

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

[英]select row with max value of a group of rows in sql

我有一个“产品”表,其中有“名称”和“价格”列。同一名称有多个价格。该表看起来像

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);

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM