2012-06-07 177 views
2

我发现了一些类似的帖子,但我没有发现它们有用。但我不知道如何分组。总结两行合一 - 我的SIDE

我想总结'没有'和'没有设置'为一行,并丢失'未设置'行。

所以说: '不'= '没有' + '未设置'

我有这样的事情:

TEST   TestCount  Month 
'Yes'   123    March 
'No'   432    March 
'Not Set'  645    March 
'Yes'   13    April 
'No'   42    April 
'Not Set'  45    April 
'Yes'   133    May 
'No'   41    May 
'Not Set'  35    May 
.... 

而且我想是这样的:

TEST   TestCount  Month 
'Yes'   423    March  (Should be 123? - @Dems) 
'No'   410    March  (Should be 1077? - @Dems) 
'Yes'   154    April  (Should be 13? - @Dems) 
'No'   192    April  (Should be 87? - @Dems) 
'Yes'   130    May  (Should be 133? - @Dems) 
'No'   149    May  (Should be 76? - @Dems) 

....

任何人都可以帮助我这个,提前tnx

+1

如果您的示例数据与您的描述相匹配,这会更有帮助。 – MatBailie

+0

@Dems嘿,你说得对,我没有正确解释问题。将尽快更新我的问题 – user147

回答

5
SELECT CASE test WHEN 'Not Set' THEN 'No' ELSE test END AS newtest, 
     month, SUM(testCount) 
FROM mytable 
GROUP BY 
     newtest, month 
3

SQL Fiddle with Demo

SELECT CASE WHEN test = 'Not Set' THEN 'No' ELSE test END AS testvalue 
    , SUM(testCount) as TestCount 
    , month 
FROM test 
GROUP BY testvalue, month 
+0

小提琴返回不正确的结果。字段名称在GROUP BY中具有别名。 – Quassnoi

+0

@Quassnoi它太早了,我修好了。感谢您指出这一点 – Taryn

+0

你至少可以选择另一个别名! :)但为小提琴+1。 – Quassnoi

2
SELECT TEST, TestCount, Month 
FROM (
     (SELECT 'No' AS TEST, SUM(TestCount) AS TestCount, Month 
     FROM mytable 
     WHERE TEST = 'No' 
      OR TEST = 'Not Set' 
     GROUP BY MONTH) 
     UNION 
     (SELECT TEST, TestCount, Month 
     FROM mytable 
     WHERE TEST = 'Yes')) AS newtable 
GROUP BY Month, TEST; 
0
SELECT TEST, TestCount, Month 
FROM 
     (SELECT 'No' AS TEST, SUM(TestCount) AS TestCount, Month 
     FROM testEntity 
     WHERE TEST = 'No' OR TEST = 'Not Set' 
     GROUP BY MONTH) 
    UNION 
     (SELECT TEST, TestCount, Month 
     FROM testEntity 
     WHERE TEST = 'Yes') 
AS newtable 
GROUP BY Month, TEST, TestCount; 

的testCount也应由条款被包括在该组中。