用于数值数据分箱的 SQL 技术
本指南演示了如何将 SQL 数据库中的数值数据分类到定义的范围内。 假设您有一个带有数字列(例如“分数”)的表格。目标是生成一个摘要,显示每个范围内的分数计数。
示例:
汇总表可能如下所示:
Score Range | Frequency |
---|---|
0-9 | 11 |
10-19 | 14 |
20-29 | 3 |
... | ... |
以下是在 SQL Server 2000 及更高版本中实现此目的的方法:
方法 1:子查询中的 CASE 表达式
此方法使用子查询内的 CASE
表达式为每个分数分配范围标签,然后使用外部查询来计算每个范围内的出现次数。
<code class="language-sql">SELECT t.range AS "Score Range", COUNT(*) AS "Frequency" FROM ( SELECT score, CASE WHEN score BETWEEN 0 AND 9 THEN '0-9' WHEN score BETWEEN 10 AND 19 THEN '10-19' ELSE '20-99' -- Handle scores outside defined ranges END AS range FROM scores ) t GROUP BY t.range;</code>
方法二:主查询中的 CASE 表达式
或者,CASE
表达式可以直接嵌入到主查询中,稍微简化结构。
<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' -- Handle scores outside defined ranges END AS "Score Range", COUNT(*) AS "Frequency" FROM scores GROUP BY CASE WHEN score BETWEEN 0 AND 9 THEN '0-9' WHEN score BETWEEN 10 AND 19 THEN '10-19' ELSE '20-99' END;</code>
这些方法有效地将数据分组并汇总到自定义范围中,为数据分布提供有价值的见解。请记住调整 CASE
语句以匹配您的特定分数范围。 考虑为定义范围之外的值添加错误处理。
以上是如何在 SQL 中将数值数据分组到范围中?的详细内容。更多信息请关注PHP中文网其他相关文章!