按SQL中最频繁出现的顺序排序

时间:2016-12-27 18:23:19

标签: sql db2

我有一张包含交易信息的表PAYTB。该表包含ACAUREQ_AUREQ_ENV_M_CMONNM,即公用商家名称。

现在我想要一个像这样的输出:

orders           ACAUREQ_AUREQ_ENV_M_CMONNM     
---------+---------+----------------
100               Antique Shop    
 30               Airleisure    
 23               Books 
 12               ....        

如何构建“订单”列,该列是具有特定商家名称的所有交易的计数?

4 个答案:

答案 0 :(得分:1)

您需要对ACAUREQ_AUREQ_ENV_M_CMONNM进行分组并查找每个行的计数,然后按该计数按降序排序。

SELECT COUNT(*) orders,
  ACAUREQ_AUREQ_ENV_M_CMONNM
FROM PAYTB
GROUP BY ACAUREQ_AUREQ_ENV_M_CMONNM
ORDER BY orders desc;

答案 1 :(得分:1)

SELECT count(*) as orders , ACAUREQ_AUREQ_ENV_M_CMONNM
FROM PAYTB 
GROUP BY ACAUREQ_AUREQ_ENV_M_CMONNM
ORDER BY 1 desc;

答案 2 :(得分:0)

您想通过以下方式使用群组:

select count(*) as orders, ACAUREQ_AUREQ_ENV_M_CMONNM
       from PAYTB
       group by ACAUREQ_AUREQ_ENV_M_CMONNM;

答案 3 :(得分:0)

按count(*)desc排序,按表达式显示组中的降序计数。

SELECT count(*) as orders , ACAUREQ_AUREQ_ENV_M_CMONNM
FROM PAYTB 
GROUP BY ACAUREQ_AUREQ_ENV_M_CMONNM
ORDER BY count(*) desc;