查询累计销量排名第二的商品

查询订单明细表中销量排名第二的商品id,如果不存在则返回null,如果存在则返回对应的商品id(多个商品同时满足则返回多个)

Mysql & SqlServer

查询语句:适用Mysql&SqlServer

利用窗口函数 DENSE_RANK() 实现,当出现并列排名时,下一个排名会连续递增。例如,如果有两个并列第 1 名,那么下一个排名将是第 2 名。

SELECT
  sku_id
FROM
  (
    SELECT
      sku_id,
      DENSE_RANK() over (ORDER BY sku_nums DESC) dr 
    FROM
  (SELECT sku_id, sum(sku_num) sku_nums FROM tb_test1 GROUP BY sku_id) t1) t2 
WHERE
  dr =2

查询结果:

posted @ 2025-04-03 16:38  相遇就是有缘  阅读(25)  评论(0)    收藏  举报