2012-09-26 27 views
0

我有這樣的查詢後,該按查詢分組 - 按功能不是一個組?

column1 column2 column3 

abc  xyz  4 
def  ghi  3 
abc  xyz  6 
abc  xyz  1 
jkl  mno  4 

預期結果表

column1 column2 column3 

abc  xyz  11 
def  ghi  3 
jkl  mno  4 

我的查詢是象下面這樣:

select column1, column2, count(column3) 
from 
    (select ......) as column1, 
    (select ......) as column2, 
    (select ......) as column3) 
group by column1, column2, count(column3) 

我得到這個錯誤「不是一個單一的組羣函數「

回答

1

您需要使用SUM,你必須刪除group bycount(column3),如果你真正得到的列從子結果查詢可能需要相當看起來像這樣:

select column1, column2, sum(column3) 
from (
     select 
      (select ......) as column1, 
      (select ......) as column2, 
      (select ......) as column3 
      from dual 
     ) 
group by column1, column2 

,否則你將需要重複子查詢的全部選擇在group by 。在你的查詢中,你說FROM (select .......) as column1,但這意味着子查詢被稱爲column1,這是行不通的。子查詢中的選定列可以使用前綴column1進行尋址。例如,如果你說FROM (select x from test) t1那麼你可以通過編寫t1.x來解決x的問題。

但如果你有一個簡單的表你描述正確的上述聲明是

select column1, column2, sum(column3) from mytable 
group by column1, column2 
2

如何使用SUM

通過使用簡單的查詢
SELECT column1, 
     column2, 
     SUM(column3) 
FROM YOUR_TABLE 
GROUP BY column1, 
     column2 
+0

我用SUM函數正如你所說,但得到這個以下錯誤「不是一個單一羣組功能」 – user1208862

+1

使用整個查詢。關鍵在於你的SELECT列必須和你的GROUP BY匹配,即'column1,column2'和另外的'SUM(column3)'。 http://ora-00937.ora-code.com/ – RichardTheKiwi

0

你會得到答案爲u喜歡

select col1, col2, sum(col3) from test 
    group by col1,col2