SQL SUM OF VARIABLES

时间:2017-06-30 10:26:32

标签: mysql sql

关于query1,我如何得到所有列变量的总和(VAR_ACTIVIDADE,VAR1,VAR2,VAR3,VAR4)?

在图像中我想要的结果。 IMG1

query1 - >

SELECT ACTIVIDADE AS VAR_ACTIVIDADE, 
       COUNT(*) AS VAR_SUM, 
       SUM(TAT_DATAREGISTO <= 1) VAR1, 
       SUM(TAT_DATAREGISTO >= 2 AND TAT_DATAREGISTO <= 3) VAR2, 
       SUM(TAT_DATAREGISTO >= 4 AND TAT_DATAREGISTO <= 9) VAR3, 
       SUM(TAT_DATAREGISTO >= 10) VAR4 
FROM MAIN_TAB
WHERE ESTADO_REP IN ('NULL', 'AGUARDA PEÇAS')
  AND EXCLUIR_YN <> 'YES_DEL'
GROUP BY ACTIVIDADE

3 个答案:

答案 0 :(得分:1)

在GROUP BY中使用WITH ROLLUP。它应该是你想要的。

答案 1 :(得分:0)

SELECT SUM(VAR_ACTIVIDADE) VAR_ACTIVIDADE,
SUM(VAR1) VAR1,
SUM(VAR2) VAR2,
SUM(VAR3) VAR3 ,
SUM(VAR4) VAR4 
from
(
SELECT ACTIVIDADE AS VAR_ACTIVIDADE, 
COUNT(*) AS VAR_SUM, 
SUM(TAT_DATAREGISTO <= 1) VAR1, 
SUM(TAT_DATAREGISTO >= 2 AND TAT_DATAREGISTO <= 3) VAR2, 
SUM(TAT_DATAREGISTO >= 4 AND TAT_DATAREGISTO <= 9) VAR3, 
SUM(TAT_DATAREGISTO >= 10) VAR4 
FROM MAIN_TAB WHERE ESTADO_REP IN('NULL','AGUARDA PEÇAS') AND EXCLUIR_YN <> 'YES_DEL' GROUP BY ACTIVIDADE
)Z

尝试以上查询。

希望这会对你有所帮助。

答案 2 :(得分:0)

用例?

SELECT ACTIVIDADE AS VAR_ACTIVIDADE, 
COUNT(*) AS VAR_SUM, 
sum(when TAT_DATAREGISTO <= 1 then 1 else 0 end) VAR1, 
SUM(when TAT_DATAREGISTO between 2 and 3 then 1 else 0 end) VAR2, 
SUM(when TAT_DATAREGISTO between 4 and 9 then 1 else 0 end) VAR3, 
SUM(when TAT_DATAREGISTO >= 10 then 1 else 0 end) VAR4 
FROM MAIN_TAB 
WHERE ESTADO_REP IN('NULL','AGUARDA PEÇAS') 
AND EXCLUIR_YN <> 'YES_DEL' 
GROUP BY ACTIVIDADE

这会计算相应列中每个条件的值(即1&#39;)