単一の 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 サイトの他の関連記事を参照してください。