假设我有一个带有数字列的表(我们称之为"score").

我想生成一个计数表,显示每个范围内出现分数的次数.

例如:

score range  | number of occurrences
-------------------------------------
   0-9       |        11
  10-19      |        14
  20-29      |         3
   ...       |       ...

在这个例子中,有11行的分数在0到9之间,14行的分数在10到19之间,还有3行的分数在20到29之间.

有没有一个简单的方法来设置它?你推荐什么?

推荐答案

在SQL Server 2000上,投票率最高的两个答案都不正确.也许他们使用的是不同的版本.

以下是SQL Server 2000上这两个版本的正确版本.

select t.range as [sc或e range], count(*) as [number of occurences]
from (
  select case  
    when sc或e between 0 and 9 then ' 0- 9'
    when sc或e between 10 and 19 then '10-19'
    else '20-99' end as range
  from sc或es) t
group by t.range

select t.range as [sc或e range], count(*) as [number of occurrences]
from (
      select user_id,
         case when sc或e >= 0 and sc或e< 10 then '0-9'
         when sc或e >= 10 and sc或e< 20 then '10-19'
         else '20-99' end as range
     from sc或es) t
group by t.range

Sql相关问答推荐

在SQL Server中使用LEFT连接包含特定记录

如何查询一个名称是根据PL/pgSQL函数结果构建的表?

表名数组

使用交叉应用透视表在SQL中转换分段时间段&

查询多个表并返回合并在联合列上的所有表中的所有行

在SQL中创建一个计数器,根据BigQuery/SQL中的条件递归地添加行值

基于前面行的值:当x&>2时重复1,当连续3行x=0时则重复0

有没有办法在每次计算每一行的数据时更新2个值?

如何从JSON数组中 Select 多个值

在Postgres中合并相似的表

根据是否出现过零来筛选数据(跨多行)

优化Postgres搜索未知长度的子串

日期逻辑(查找过go 90 天内的第一个匹配行)

如何在 postgres 中旋转某些数据字段

基于字符串的SQL查询

在 MS Access VBA 中,如何测量显示查询的时间?

如何将特定值从 JSON 列中的一个字段移动到 PostgreSQL 中的另一个字段?

获取 SQL Server 中每一行的两个-之间的文本

String_Split 多列

Select 多年的日期范围