単一の SQL クエリで条件付き集計を使用して 2 つの異なるデータ セットを取得する方法
Jan 21, 2025 pm 12:36 PM単一の SQL クエリを使用して 2 つの別々のデータセットを効率的に取得する
この例では、複数のクエリの必要性を回避して、単一の SQL クエリから 2 つの異なるデータセットを取得する方法を示します。 transactions
テーブル (id
、account_id
、budget_id
、points
、type
列を含む) を使用して説明します。目標は以下を取得することです:
- 各
points
の合計budget_id
(type
は「割り当て」です)。 - 各
points
の合計budget_id
(type
は「問題」です)。
解決策: 条件付き集計
条件付き集計を使用すると、単一の SQL クエリでこれを実現できます。
SELECT budget_id, SUM(CASE WHEN type = 'allocation' THEN points ELSE 0 END) AS allocated_points, SUM(CASE WHEN type = 'issue' THEN points ELSE 0 END) AS issued_points FROM transactions GROUP BY budget_id;
このクエリは、CASE
ステートメント (データベース システムによっては IF
) を使用して、points
を条件付きで合計します。 type
が「allocation」の場合、points
は allocated_points
に追加されます。それ以外の場合は 0 が追加されます。 同じロジックが issued_points
にも当てはまります。 GROUP BY
句により、一意の budget_id
ごとに合計が計算されるようになります。
期待される出力:
クエリは次のような結果セットを返します:
<code>budget_id | allocated_points | issued_points ----------|-------------------|--------------- 434 | 200000 | 100 242 | 100000 | 5020 621 | 45000 | 3940</code>
以上が単一の SQL クエリで条件付き集計を使用して 2 つの異なるデータ セットを取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

人気の記事

人気の記事

ホットな記事タグ

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Alter Tableステートメントを使用してMySQLのテーブルをどのように変更しますか?

Linuxでmysqlを実行します(phpmyAdminを使用してポッドマンコンテナを使用して/なし)

共通の脆弱性(SQLインジェクション、ブルートフォース攻撃)に対してMySQLを保護するにはどうすればよいですか?

MACOSで複数のMySQLバージョンを実行する:ステップバイステップガイド

MySQL接続用のSSL/TLS暗号化を構成するにはどうすればよいですか?
