首页 >数据库 >mysql教程 >如何使用 SQL 的 GROUP BY 子句将数据聚合到范围中?

如何使用 SQL 的 GROUP BY 子句将数据聚合到范围中?

Barbara Streisand
Barbara Streisand原创
2025-01-17 21:27:11572浏览

How Can I Use SQL's GROUP BY Clause to Aggregate Data into Ranges?

用于数据范围聚合的 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_rangescore_count,提供了定义范围内分数分布的清晰概览。

以上是如何使用 SQL 的 GROUP BY 子句将数据聚合到范围中?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn