複数の WHERE 句を使用して異なるデータを取得する
SQL では、WHERE 句を使用して特定の行をフィルタリングし、テーブルからのデータの取得方法をカスタマイズできます。この問題は、それぞれが異なる WHERE 句を満たす 2 つの異なるデータ セットを同じテーブルから抽出するという課題を提示します。
サンプル テーブル「transactions」には、ID、アカウント ID、予算 ID、獲得ポイント、およびトランザクション タイプによって特徴付けられる金融トランザクションの記録が保存されます。このタスクは、一意の予算 ID ごとに割り当てられたポイントの合計と発行されたポイントの合計を計算することです。
これを行うには、必要な WHERE 句を組み合わせた単一の SQL クエリを構築できます。次のクエリでは、望ましい結果が得られます:
<code class="language-sql">SELECT budget_id, SUM(CASE WHEN type = 'allocation' THEN points ELSE 0 END) AS allocated, SUM(CASE WHEN type = 'issue' THEN points ELSE 0 END) AS issued FROM transactions GROUP BY budget_id</code>
このクエリは CASE WHEN ステートメントを使用して、トランザクション タイプに基づいて条件付きでポイントを合計します。クエリは予算 ID ごとに、「割り当て」タイプに関連付けられたポイントの合計を計算し、それを「割り当て済み」列に保存します。同様に、「発行」タイプのポイントの合計を計算し、「発行」列に格納します。結果を予算 ID でグループ化することにより、クエリは期待される結果セットを生成します。この結果セットには、予算ごとに割り当てられたポイントと発行されたポイントの個別の列が含まれます。
このクエリは、WHERE 句を組み合わせてテーブルからデータの特定のサブセットを取得する SQL の柔軟性を示しており、複雑なデータ取得タスクを実行するための強力なツールとなっています。
以上が単一の SQL クエリで複数の WHERE 句の条件に基づいて異なる合計を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。