sql - 计数 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 查询。有没有办法在单个查询中获得相同的输出?
解决方案
你可以试试下面的 -
select concat(year(order_date),'/', month(order_date)) "date",count(distinct customer_id)
from customer
group by concat(year(order_date),'/', month(order_date))
推荐阅读
- matlab - 如何仅在特定视频帧的质心上绘制形状 - 使用“MATLAB”
- php - $pdo->getAttribute(\PDO::ATTR_FETCH_TABLE_NAMES) 导致异常
- firebase - 更改场景时如何在“它所依赖的应用程序”之前删除我的 Auth 对象?
- c - 如何正确获取一行并用 C 解析它
- r - 使用函数从数据框中过滤或选择行的正确语法
- javascript - 在表情符号键盘中选择表情符号时会触发哪些事件?
- mysql - 在 MySQL/MariaDB 文本字段中将正则表达式文本转换为小写
- java - 缓冲阅读器 read() 返回字符比较
- azure-iot-edge - 如何使用 moby 限制 Azure IotEdge 容器中的日志文件大小
- node.js - 方法soap中promise.all的问题,只返回第一个查询api