2

我有一个查询,它以以下格式返回数据:

xxx yyy     count
-------------------------------
a   cat1    23
a   cat2    34
a   cat3    12
b   cat1    34
b   cat2    1
b   cat3    2
c   cat1    34
c   cat2    123
c   cat3    34
d   cat1    34
d   cat2    12
d   cat3    34

我需要以这样一种方式修改我的查询,即我需要将 yyy 列的两个值分类为单个值并组合它们的计数

xxx yyy         count
-------------------------------
a   cat1        23
a   cat2 & cat3 36
b   cat1        34
b   cat2 & cat3 3
c   cat1        34
c   cat2 & cat3 157
d   cat1        34
d   cat2 & cat3 36

如果您有任何想法,请提出建议!

4

1 回答 1

0

假设您总是希望 cat1 爆发并且只有 2 只其他猫...

SELECT xxx, yyy, COUNT(*) AS count
FROM table
WHERE yyy = 'cat1'
GROUP BY xxx, yyy
UNION
SELECT xxx, 'cat2 & cat3' AS yyy, COUNT(*) AS count
FROM table
WHERE yyy <> 'cat1'
GROUP BY xxx

如果你有额外的猫,你只想要 2 和 3,更改WHERE yyy <> 'cat1'WHERE yyy IN ('cat2','cat3')

于 2014-06-03T14:07:57.810 回答