トランザクション データを要約するための効率的な SQL クエリ
複数の基準に基づいてデータを抽出することは、データベース管理における一般的なタスクです。 account_id、budget_id、ポイント、およびトランザクション タイプ (割り当てまたは発行) を含む「トランザクション」テーブルを想像してください。 課題は、割り当てと課題のタイプに分けて、各 Budget_id の合計ポイントを効率的に計算することです。
簡潔な 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
関数内の SUM()
ステートメントを利用します。 CASE WHEN type = 'allocation' THEN points ELSE 0 END
式はトランザクション タイプをチェックします。 「allocation」の場合、対応する points
値が合計されます。それ以外の場合は 0 が追加されます。 この条件付き合計は、「発行」タイプのトランザクションに対して繰り返されます。
結果を budget_id
でグループ化すると、各予算に割り当てられ発行されたポイントを示す概要が表示されます。出力にはトランザクション データの統合ビューが明確に表示され、分析とレポートが容易になります。
以上がSQL を使用して予算 ID とトランザクション タイプ別にポイントを効率的に合計するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。