sql server统计字段的值在某些范围内中的个数

本文介绍如何使用SQL语句查询并统计指定数值范围内的数据个数,包括1~6、10~17、19~20三个区间的数据数量。同时,演示了针对成倍数(有规律)区间数据的查询方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

有一张表test如下:

create table test
(
id int identity(1,1) primary key,
num int 
)

 

插入数据:

insert into test( num) values (1);
insert into test( num) values (2);
insert into test( num) values (8);
insert into test( num) values (15);
insert into test( num) values (12);
insert into test( num) values (13);
insert into test( num) values (14);
insert into test( num) values (16);
insert into test( num) values (17);
insert into test( num) values (5);
insert into test( num) values (6);
insert into test( num) values (7);
insert into test( num) values (16);
insert into test( num) values (18);
insert into test( num) values (9);
insert into test( num) values (10);
insert into test( num) values (11);
insert into test( num) values (12);
insert into test( num) values (19);
insert into test( num) values (20);
insert into test( num) values (3);
insert into test( num) values (4);
insert into test( num) values (19);
insert into test( num) values (20);
insert into test( num) values (17);
insert into test( num) values (18);
View Code

 

问题:请用一条sql语句查询 统计出num在 1~6,  10~17,  19~20 这三个范围内的个数分别是多少?

 

解法如下:

select 
COUNT (case when num between 1 and 6 then 1 end ) as [1-6],
COUNT( case when num between 10 and 17 then 2 end ) as [10-17],
COUNT (case when num between 19 and 20 then 3 end ) as [19-20]
from test

 

如果问题是问1~5, 6~10,11~15这样成倍数(有规律)的话,则可以这样写:

select COUNT(*) from test group by num/5

 

转载于:https://www.cnblogs.com/527289276qq/p/5372172.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值