力扣1082
例题1:查询总销售额最高的销售者,如果有并列的,就都展示出来。
Id 为 1 和 3 的销售者,销售总金额都为最高的 2800。
解法1.子查询先找到最大值,然后查找等于最大值的数
select seller_id from
(
select seller_id ,sum(price) as price from Sales group by seller_id
having
price = (
select max(price) from
(
select sum(price) as price from Sales group by seller_id
) t1
)
)
解法2.通过all,找到最大值
select seller_id from Sales group by seller_id
having
sum(price) >= all(select sum(price) from Sales group by seller_id)
解法3.窗口函数排序
select seller_id from
(
select seller_id,dense_rank() over(order by sum(price) desc) as cnt
from Sales
group by seller_id
) t1
where cnt = 1