首页 > 解决方案 > 如何进行涉及计数的总和

问题描述

我有以下查询,我在其中进行了 COUNT:

SELECT FECHAGENERACION, IDAPLICACION, COUNT(*) as NRO_REGISTROS
FROM  ADMBLOQMON.BOC_MAEBLOQAUX_BLOQ_MONO  WHERE fechageneracion between '01/12/20' AND '02/12/20' AND IDAPLICACION = 01
GROUP BY FECHAGENERACION, IDAPLICACION
ORDER BY 1,2;

这给了我以下结果:

01/12/20    01    62172
02/12/20    01    61812

我怎样才能使这个查询也给我计数 62172 和 61812 的总和?我很努力,请帮忙

标签: sqloracle

解决方案


在 Oracle 中,您可以使用GROUPING SETS

SELECT FECHAGENERACION, IDAPLICACION, COUNT(*) as NRO_REGISTROS
FROM ADMBLOQMON.BOC_MAEBLOQAUX_BLOQ_MONO 
WHERE fechageneracion between DATE '2020-01-12' AND DATE '2020-02-12' AND
      IDAPLICACION = 01
GROUP BY GROUPING SETS ( (FECHAGENERACION, IDAPLICACION), () )
ORDER BY 1,2;

请注意,我使用标准 YYYY-MM-DD 格式修复了日期常量(我不得不猜测日期的含义,所以这可能是错误的)。我强烈建议对日期使用标准格式,这样本地设置就不会改变代码的含义(并且代码更具可读性)。


推荐阅读