查找最高价格并显示多列 SQL

时间:2021-02-11 16:55:19

标签: sql

我有一张看起来像这样的表格:

customer_id    item   price   cost
1             Shoe    120     36
1             Bag     180     50
1             Shirt   30      9
2             Shoe    150     40
3             Shirt   30      9
4             Shoe    120     36
5             Shorts  65      14

我试图找到每位客户购买的最贵的商品,以及商品的成本和商品名称。

我可以做第一部分:

SELECT customer_id, max(price) 
FROM sales
GROUP BY customer_id;

这给了我:

customer_id      price  
    1             180   
    2             150 
    3             30
    4             120
    5             65

我如何让这个输出也显示我的项目和它在输出中的成本?所以输出应该是这样的...

customer_id      price   item    cost
    1             180    Bag     50
    2             150    Shoe    40
    3             30     Shirt   9
    4             120    Shoe    36
    5             65     Shorts  14

我假设它是 Select 中的 Select 语句?我非常感谢您的帮助,因为我对 SQL 还很陌生。

1 个答案:

答案 0 :(得分:1)

通常具有良好性能的一种方法是相关子查询:

select s.*
from sales s
where s.price = (select max(s2.price)
                 from sales s2
                 where s2.customer_id = s.customer_id
                );
相关问题