需求是求以下表中每一种分类销量最多的三种商品:

mysql实现over partition by 的查询(分组排序求TOP)

 

方法1:

SELECT TBL.ID,TBL.PRODUCTNAME,TBL.TYPENAME,TBL.SALECOUNT
FROM PRODUCT TBL 
LEFT JOIN PRODUCT L_TBL ON TBL.TYPENAME = L_TBL.TYPENAME AND TBL.SALECOUNT< L_TBL.SALECOUNT
GROUP BY TBL.ID,TBL.PRODUCTNAME,TBL.TYPENAME,TBL.SALECOUNT
HAVING COUNT(L_TBL.ID)< 3
ORDER BY TBL.TYPENAME,TBL.SALECOUNT DESC

方法2:

SELECT TBL.ID,TBL.PRODUCTNAME,TBL.TYPENAME,TBL.SALECOUNT
FROM PRODUCT TBL
WHERE 3>(SELECT COUNT(*) FROM PRODUCT WHERE TYPENAME =TBL.TYPENAME AND SALECOUNT>TBL.SALECOUNT)
ORDER BY TBL.TYPENAME,TBL.SALECOUNT DESC

 

查询结果:

mysql实现over partition by 的查询(分组排序求TOP)

 

相关文章:

  • 2021-06-01
  • 2022-12-23
  • 2021-07-01
  • 2022-01-23
  • 2021-12-13
猜你喜欢
  • 2022-12-23
  • 2021-08-05
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-07-06
  • 2021-09-23
相关资源
相似解决方案