ホームページ > データベース > mysql チュートリアル > 単一の MySQL ステートメントで異なるテーブルの複数の列を効率的に集計するにはどうすればよいですか?

単一の MySQL ステートメントで異なるテーブルの複数の列を効率的に集計するにはどうすればよいですか?

Susan Sarandon
リリース: 2025-01-21 11:12:10
オリジナル
592 人が閲覧しました

How to Efficiently Aggregate Multiple Columns from Different Tables in a Single MySQL Statement?

単一の MySQL クエリによる複数のテーブルのデータの統合

当初、複数のサブクエリを使用してさまざまなテーブルからデータを集計すると、最初の列のみが正しい値を示す不正確な結果が得られました。 これを解決するには、より効率的な方法が必要です。

最も効果的なソリューションには、単一のテーブル クエリ内の条件付き集計が含まれます。 このアプローチにより、複数のサブクエリの制限が回避され、正確な結果が得られます。 次のクエリは、この手法を示しています:

<code class="language-sql">SELECT DAY_IN, COUNT(*) AS arr,
       SUM(IF(PAT_STATUS LIKE '%ong%', 1, 0)) AS ONG1,
       SUM(IF(PAT_STATUS LIKE '%rtde%', 1, 0)) AS RTED,
       SUM(IF(PAT_STATUS LIKE '%pol%', 1, 0)) AS POL1,
       SUM(IF(PAT_STATUS LIKE '%para%', 1, 0)) AS para
FROM t_hospital
WHERE DAY_IN BETWEEN @start_check AND @finish_check
  AND RES_DATE BETWEEN @start_res AND @finish_res
  AND ID_daily_hos = @daily_hos
GROUP BY DAY_IN</code>
ログイン後にコピー

このクエリは、IF() 関数を使用して、PAT_STATUS 列に基づいて条件付きで出現回数をカウントします。 各行は 1 回だけカウントされ、単一の集計列に寄与します。 SUM() 関数は、各 DAY_IN のこれらの条件付きカウントを合計します。

この単一クエリのアプローチは、同じテーブル内の異なる列からデータを集計するための簡潔かつ正確な方法を提供し、それによって元の複数のサブクエリ方法から得られる不正確な結果の問題を解決します。

以上が単一の MySQL ステートメントで異なるテーブルの複数の列を効率的に集計するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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