题解 | 商品价格排名

商品价格排名

https://www.nowcoder.com/practice/119f5b8cfe5b45779a3e1b3f4d83b341

SELECT product_id, product_name, type, price
FROM (
    SELECT product_id, product_name, type, price, DENSE_RANK() OVER(PARTITION BY type ORDER BY price DESC) AS rk
    FROM product_info
) a
WHERE rk <3
ORDER BY price DESC, product_name
LIMIT 3;

注:

  1. 两重排序,先在每类产品中取价格最高的两个,然后从取出的产品中取价格最高的前三个;
  2. 分组排序用窗口函数,不分组用“ORDER BY + LIMIT”;

全部评论

相关推荐

不愿透露姓名的神秘牛友
03-10 14:27
已编辑
点赞 评论 收藏
分享
Beeee0927:正确的建议
点赞 评论 收藏
分享
暮雨轻歌:看起来hr不能接受我菜查看图片
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务