ホームページ >データベース >mysql チュートリアル >単一の SQL クエリから複数のカウントを効率的に取得するにはどうすればよいですか?
クエリ設計の最適化: 単一の SQL ステートメントを使用して複数のカウントを達成します
データ分析では、テーブル内のさまざまな条件に対して複数のカウントを取得する必要があることがよくあります。単純なクエリでは単一のカウントを返すことができますが、単一のクエリで複数のカウントを取得するには、より微妙なアプローチが必要です。
クエリ構造:
これには、CASE ステートメントと集計関数を組み合わせて使用できます。このメソッドは、一部のデータベース システムの PIVOT 関数の機能をシミュレートします。生成されたクエリは次の形式になります:
<code class="language-sql">SELECT distributor_id, COUNT(*) AS total, SUM(CASE WHEN level = 'exec' THEN 1 ELSE 0 END) AS ExecCount, SUM(CASE WHEN level = 'personal' THEN 1 ELSE 0 END) AS PersonalCount FROM yourtable GROUP BY distributor_id</code>
手順:
COUNT(*)
関数は、各 distributor_id
の合計行数をカウントします。 level
列に基づいて行数を増やします。 level
が「exec」の場合、ExecCount
が増分され、level
が「personal」の場合、PersonalCount
が増分されます。 GROUP BY
句は、結果を distributor_id
ごとにグループ化し、各ディストリビューターの一意のカウントを確保します。 この方法の利点:
以上が単一の SQL クエリから複数のカウントを効率的に取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。