私は2つの列を持つこのテーブルを持っています:
ID, TypeID
各 ID は複数の TypeID を持つことができます。クエリ結果には、次のものが必要です。
ID, Count(TypeID = 10), Count(TypeID = 20 or 30), Count(TypeID 40 and 50)
クエリ自体は、可能な限り高速でパフォーマンスが高い必要があります。誰でも助けることができますか?
私は2つの列を持つこのテーブルを持っています:
ID, TypeID
各 ID は複数の TypeID を持つことができます。クエリ結果には、次のものが必要です。
ID, Count(TypeID = 10), Count(TypeID = 20 or 30), Count(TypeID 40 and 50)
クエリ自体は、可能な限り高速でパフォーマンスが高い必要があります。誰でも助けることができますか?
これを試して:
SELECT
ID,
SUM(CASE WHEN TypeID = 10 THEN 1 ELSE 0 END) "Count of 10",
SUM(CASE WHEN TypeID IN (20, 30) THEN 1 ELSE 0 END) "Count of 30 or 20",
SUM(CASE WHEN TypeID IN (40, 50) THEN 1 ELSE 0 END) "Count of 40 AND 50"
FROM Table
GROUP BY ID;
最後のケース:値 40 と 50 のカウントが得られるため、述語はうまくいくとCount(TypeID 40 and 50)
思います。TypeID IN (40, 50)