用于数据范围聚合的 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
,提供了定义范围内分数分布的清晰概览。
以上是如何使用 SQL 的 GROUP BY 子句将数据聚合到范围中?的详细内容。更多信息请关注PHP中文网其他相关文章!