Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ 集約関数とCASE WHEN | セクション
SQLにおけるCASE WHENの習得

book集約関数とCASE WHEN

メニューを表示するにはスワイプしてください

SQLでグループ化された分析を行う場合、SUMCOUNTAVGなどの集計関数によってデータを要約可能です。しかし、各グループ内の特定の行だけを集計したい場合があります。ここでCASE WHENと集計関数を組み合わせることで、条件を指定して集計対象となる行を制御できます。これにより、条件に合致する行のみをカウント、合計、平均することが可能になります。

123456
SELECT customer_id, SUM(CASE WHEN transaction_type = 'purchase' THEN amount ELSE 0 END) AS total_purchases, SUM(CASE WHEN transaction_type = 'deposit' THEN amount ELSE 0 END) AS total_deposits FROM transactions GROUP BY customer_id;
copy

このクエリは条件付き集計の仕組みを示しています。CASE WHEN式をSUMの内部に配置することで、集計に含める行を制御します。各customer_idごとに購入と入金の合計金額を個別に算出します。transaction_typeが条件(例:'purchase')に一致する場合、amountが合計に加算され、それ以外の場合は0が加算されます。この方法により、1つのグループ化クエリで異なる取引タイプの合計を別々に作成でき、レポートの精度と柔軟性が向上します。

123
SELECT COUNT(CASE WHEN amount > 100 THEN 1 END) AS transactions_above_100 FROM transactions;
copy

1. 集約関数内でCASE WHENを使用すると、どのような効果がありますか?

2. SUMCASE WHENを使って「refund」取引の合計金額を計算するために空欄を埋めてください。

question mark

集約関数内でCASE WHENを使用すると、どのような効果がありますか?

正しい答えを選んでください

question-icon

SUMCASE WHENを使って「refund」取引の合計金額を計算するために空欄を埋めてください。

= 'refund' THEN amount ELSE 0 END) AS total_refunds FROM transactions;
total_refunds
0

クリックまたはドラッグ`n`ドロップして空欄を埋めてください

すべて明確でしたか?

どのように改善できますか?

フィードバックありがとうございます!

セクション 1.  19

AIに質問する

expand

AIに質問する

ChatGPT

何でも質問するか、提案された質問の1つを試してチャットを始めてください

セクション 1.  19
some-alt