同一查询中的多个计数
Posted
技术标签:
【中文标题】同一查询中的多个计数【英文标题】:MULTIPLE COUNTS IN THE SAME QUERY 【发布时间】:2020-06-04 08:55:35 【问题描述】:我有这张表,我想统计一下同类型的订单数量,以及所有订单的数量,如下
ord_id type
1 A
2 B
3 A
4 C
结果如下:
TYPE COUNT TOTAL
A 2 4
B 1 4
C 1 4
其中 count 列是基于类型的订单计数,total 是订单总数。
这是我的代码:
SELECT type, COUNT(*)
FROM
table
where type = 'A'
Union
SELECT type, COUNT(*)
FROM
table
where type = 'b';
【问题讨论】:
跳过 UNION,做一个 GROUP BY! 【参考方案1】:使用聚合和窗口函数:
select
type,
count(*) cnt,
sum(count(*)) over() total
from mytable
group by type
【讨论】:
以上是关于同一查询中的多个计数的主要内容,如果未能解决你的问题,请参考以下文章