2015-03-19 202 views
0

我正在使用SQL语言。SQL嵌套聚合

我有一个名为parta的表。我想要计算字段40b1和40b2并找出这个总和。我的查询在这里。

 select 
     count(40b1) as 40b1, 
     count(40b2) as 40b2, 
     sum(count(40b1) + count(40b2)) as sum, 
     code/100 as code 
     from  parta 
     where 40b1=true and mandays>=1000 
     group by code/100 ; 

预期输出

 40b1  40b2 sum code verticalsum 
     5  5  10 20 7 
     2  2  4  21 7 

如何完成它?请帮忙。

要获取此verticalsum列,可以使用哪种查询?

+1

从查询中得到的输出是什么?你的'表'中的数据是什么? – Jens 2015-03-19 06:30:50

+0

实际上,上面提到的代码不起作用。它显示错误,如错误:聚合函数调用不能嵌套 – Rose 2015-03-19 06:35:28

+0

你可以做一个[sqlfiddle](http://sqlfiddle.com/)? – Jens 2015-03-19 06:38:05

回答

1

你不需要SUM()COUNT()的。只需将它们加在一起。

select count(40b1) as 40b1, 
     count(40b2) as 40b2, 
     count(40b1) + count(40b2) as sum, 
     code/100 as code 
from  parta 
where 40b1=true and mandays>=1000 
group by code/100 ; 
+0

@ Mike。它工作正常。我也想要结果表的每列的垂直和。怎么可能? – Rose 2015-03-19 08:09:58

+0

而不是添加计数添加总和:'SUM(COL1)+ SUM(COL2)' – 2015-03-19 08:13:38

+0

我不能得到它。请看我编辑的问题。 – Rose 2015-03-19 08:16:02