selectステートメントを実行していて、タイプに基づいて2つの列に分割したい列があり、IDでグループ化された金額の合計を取得します
1つの列にすべてのゴールドとプラチナのタイプを入れ、2番目の列にすべてのシルバーとブロンズを入れて、IDで合計してグループ化すると、次のようになります。
私はこのような組合をやってみました:
SELECT
ID,
SUM(Amount) AS "Gold/Platinum",
0 AS "Bronze/Silver"
FROM
table
WHERE
Type IN ('gold', 'platinum')
GROUP BY
ID
UNION ALL
SELECT
ID,
SUM(Amount) AS "Bronze/Silver",
0 AS "Gold/Platinum"
FROM
table
WHERE
Type IN ('bronze', 'silver')
GROUP BY
ID
ゴールド/プラチナカラムは正しいですが、ブロンズ/シルバーカラムには何も表示されません
条件付き集計を使用する:
select id,
sum(case when Type in ('gold', 'platinum') then amount else 0 end) as gold_platinum,
sum(case when Type in ('bronze', 'silver') then amount else 0 end) as bronze_silver
from t
group by id
order by id;
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加