ホームページ >データベース >mysql チュートリアル >SQL の GROUP BY 句を使用してデータを範囲に集約するにはどうすればよいですか?
データ範囲集計用の SQL GROUP BY
さまざまな範囲にわたるデータ分布を分析することは、データ分析の重要な側面です。 SQL の GROUP BY
句は、データを事前定義されたグループに集約するための堅牢なメカニズムを提供し、簡潔な概要テーブルとレポートの生成を容易にします。
範囲ベースのグループの作成
データを特定の範囲に分類するには、CASE WHEN
ステートメントを利用して、定義された条件に基づいて新しい列に値を割り当てます。この新しく作成された列は、GROUP BY
句を使用してデータをグループ化するための基礎として機能します。
例: スコア範囲のグループ化
特定の間隔 (0 ~ 9、10 ~ 19、20 ~ 29 など) 内のスコアの頻度を決定する必要があるシナリオを考えてみましょう。 次のクエリは、これらのスコア範囲を表す新しい列を構築します:
<code class="language-sql">SELECT CASE WHEN score BETWEEN 0 AND 9 THEN '0-9' WHEN score BETWEEN 10 AND 19 THEN '10-19' ELSE '20-99' END AS score_range FROM scores;</code>
このクエリは score_range
列を生成し、各スコアを対応する範囲に割り当てます。
GROUP BY による集計
各範囲内のスコアの数を計算するには、COUNT(*)
句と組み合わせて GROUP BY
集計関数を使用します。以下のクエリはこれを実現します:
<code class="language-sql">SELECT score_range, COUNT(*) AS score_count FROM ( SELECT CASE WHEN score BETWEEN 0 AND 9 THEN '0-9' WHEN score BETWEEN 10 AND 19 THEN '10-19' ELSE '20-99' END AS score_range FROM scores ) AS ranged_scores GROUP BY score_range;</code>
出力
結果の表には、score_range
と score_count
の 2 つの列が表示され、定義された範囲にわたるスコア分布の明確な概要が示されます。
以上がSQL の GROUP BY 句を使用してデータを範囲に集約するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。