按查询分组 - 按功能分组不是一组?

时间:2012-09-26 04:52:15

标签: .net sql database oracle

我有一张这样的表

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)

我收到此错误“不是单组群组功能”

3 个答案:

答案 0 :(得分:2)

如何使用SUM

SELECT  column1,
        column2,
        SUM(column3)
FROM    YOUR_TABLE
GROUP BY column1,
        column2

答案 1 :(得分:1)

您需要使用SUM,并且必须删除count(column3)中的group by,如果您确实将列作为子查询的结果,则可能需要将其视为此类似:

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 :(得分:0)

通过使用简单查询,您将得到像您一样的答案

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