【问题标题】: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!

标签: sql oracle group-by count window-functions


【解决方案1】:

使用聚合和窗口函数:

select 
    type,
    count(*) cnt,
    sum(count(*)) over() total
from mytable
group by type

【讨论】:

    猜你喜欢
    • 2023-03-13
    • 1970-01-01
    • 1970-01-01
    • 2014-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-10
    • 2018-10-09
    相关资源
    最近更新 更多