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

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

ビジネスレポートでは、顧客のセグメント分け、取引タイプの分類、VIPなどの主要グループの特定など、特定のニーズに合わせたインサイトの提供が求められることが多くあります。標準的なSQL集計は合計値の要約には適していますが、実際の業務ではより柔軟な対応が必要です。クエリ内でCASE WHENを使用することで、カスタム指標やカテゴリを動的に定義でき、ビジネス関係者にとってより意味のある実用的なレポートを作成できます。この手法により、既存のフィールドだけに頼るのではなく、独自のルールでデータを分類する新しいカラムを作成できます。

123456789
SELECT customer_id, SUM(CASE WHEN amount >= 200 THEN amount ELSE 0 END) AS Large_Transactions, SUM(CASE WHEN amount >= 100 AND amount < 200 THEN amount ELSE 0 END) AS Medium_Transactions, SUM(CASE WHEN amount < 100 THEN amount ELSE 0 END) AS Small_Transactions FROM transactions GROUP BY customer_id;
copy

このクエリでは、集計関数内にCASE WHEN式を組み込むことで、1つのレポート内に複数のカスタムカラムを作成する方法を示しています。各カラムは異なるCASE WHEN条件を用いて、特定の金額範囲に該当する取引額を合計します。Large_Transactionsは200ドル以上、Medium_Transactionsは100ドル以上199.99ドル以下、Small_Transactionsは100ドル未満の金額を集計します。customer_idでグループ化することで、顧客ごとの内訳が明確になり、ビジネス判断を直接サポートします。このパターンは、レポートで必要な任意のカスタムセグメントに応用可能です。

123456789101112
SELECT customer_id, COUNT(*) AS total_transactions, SUM(CASE WHEN amount >= 200 THEN 1 ELSE 0 END) AS large_transaction_count, CASE WHEN SUM(CASE WHEN amount >= 200 THEN 1 ELSE 0 END) > 5 THEN 'VIP' ELSE 'Regular' END AS customer_status FROM transactions GROUP BY customer_id;
copy

1. CASE WHEN はカスタムビジネスレポートの作成にどのように役立ちますか?

2. CASE WHEN を使い、5 回を超える「Large」トランザクション(amount >= 200)がある顧客を「VIP」としてフラグ付けするクエリの空欄を埋めてください。

question mark

CASE WHEN はカスタムビジネスレポートの作成にどのように役立ちますか?

すべての正しい答えを選択

question-icon

CASE WHEN を使い、5 回を超える「Large」トランザクション(amount >= 200)がある顧客を「VIP」としてフラグ付けするクエリの空欄を埋めてください。

SELECT customer_id, CASE WHEN SUM(CASE WHEN amount >= 200 THEN 1 ELSE 0 END) > THEN '' ELSE 'Regular' END AS customer_status FROM transactions GROUP BY customer_id;
customer_id | customer_status
-------------+-----------------
101 | Regular
102 | Regular
103 | Regular
104 | Regular

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

すべて明確でしたか?

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

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

セクション 1.  22

AIに質問する

expand

AIに質問する

ChatGPT

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

セクション 1.  22
some-alt