2015-03-19 201 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