首页 > 解决方案 > COUNT 和 COUNT,GROUP BY 第一个计数

问题描述

我正在尝试通过订单数量来统计客户数量。我可以同时提取订单数量和具有订单数量的客户数量,但是当订单数量相同时,我无法汇总客户数量。

SELECT COUNT(orderid) AS ordrs, 
       CASE WHEN COUNT(orderid)=COUNT(orderid) THEN COUNT(DISTINCT(custid)) ELSE "NA" END AS customr_cnt 
FROM orders;

我也试过跑步

SELECT COUNT(orderid) AS ordrs, 
       CASE WHEN COUNT(orderid)=COUNT(orderid) THEN COUNT(custid) ELSE "NA" END AS customr_cnt 
FROM orders;

它只返回总订单数和总客户数

标签: mysqlsql

解决方案


我正在尝试通过订单数量来统计客户数量。

你想要两个级别的聚合吗?

select num_orders, count(*)
from (select custid, count(*) as num_orders
      from orders
      group by custid
     ) o
group by num_orders
order by num_orders;

推荐阅读