ホームページ > データベース > mysql チュートリアル > SQL を使用して予算 ID とトランザクション タイプ別にポイントを効率的に合計するにはどうすればよいですか?

SQL を使用して予算 ID とトランザクション タイプ別にポイントを効率的に合計するにはどうすればよいですか?

Linda Hamilton
リリース: 2025-01-21 12:43:11
オリジナル
965 人が閲覧しました

How to Efficiently Sum Points by Budget ID and Transaction Type Using SQL?

トランザクション データを要約するための効率的な 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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート