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 列の 2 つの値を単一に分類し、それらのカウントを結合する必要があるように、クエリを変更する必要があります。

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 に答える