首页 > 解决方案 > 计数 2 Group by(s) 没有子查询/CTE

问题描述

-- 每个月有多少客户下订单?

表:客户

在此处输入图像描述

期望的输出:

在此处输入图像描述

我的代码给出了所需的输出:

with abc as (select concat(year(order_date),'/', month(order_date)) "date",customer_id
from customer
group by 1,2
order by 1)

select date,count(*) "customers_who_ordered"
from abc
group by 1;

我不想要子查询或 CTE 查询。有没有办法在单个查询中获得相同的输出?

标签: sqlgroup-bycountsubquerysql-date-functions

解决方案


你可以试试下面的 -

select concat(year(order_date),'/', month(order_date)) "date",count(distinct customer_id)
from customer
group by concat(year(order_date),'/', month(order_date))

推荐阅读