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


    有一张表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
  • 相关阅读:
    #跟着教程学# 6、maya/python window命令
    element 中MessageBox的封装
    vue中XLSX解析excel文件
    git工作区-暂存区
    GIT相关
    弹窗-二维码生成与下载
    输入框限定100个汉字或200字符
    深浅拷贝(详细)
    日期选择器选取时间范围(非空以及初始时间不能在当天以前)
    多选
  • 原文地址:https://www.cnblogs.com/527289276qq/p/5372172.html
Copyright © 2020-2023  润新知