网站首页  汉语字词  英语词汇  考试资料  写作素材  旧版资料

请输入您要查询的考试资料:

 

标题 在sql中统计某个区段值的小技巧
内容
    今天在帮客户做一些统计,需要按照某个区段对数据进行统计,于是上网搜索了一下,结果没有发现比较满意的,最接近的是 中7楼的答案,但这个统计不能指定区段,于是自己琢磨了一下,写了这么个语句:
    declare @tb table(id int identity(1,1),num int)
    insert into @tb(num) values(1),(10),(20),(25),(12),(15),(13),(22),(5),(50),(80),(110)
    select count(*),overall,over10,over20,over50,over100 from (select 1 as overall,convert(bit,num/10) as over10,convert(bit,num/20) as over20,convert(bit,num/50) as over50,convert(bit,num/100) as over100 from @tb) as a group by overall,over10,over20,over50,over100
    我是根据每一个指定的区段进行一次比值,并将起转换成bit类型,这样得到的结果要么是符合条件1,要么是不符合区段0,然后在整个group就可以得到结果了
    当然,我没有把统计得到的区段也方到sql里,于是修改一下sql指令
    declare @tb table(id int identity(1,1),num int)
    insert into @tb(num) values(1),(10),(20),(25),(12),(15),(13),(22),(5),(50),(80),(110)
    select n'scope'=(case(overall+over10+over20+over50+over100) when 1 then '0-9' when 2 then '10-19' when 3 then '20-49' when 4 then '50-99' else '100+' end),count(*) from (select 1 as overall,convert(bit,num/10) as over10,convert(bit,num/20) as over20,convert(bit,num/50) as over50,convert(bit,num/100) as over100 from @tb) as a group by (overall+over10+over20+over50+over100)
    这样,就得到了我们所需要的区段统计了
随便看

 

在线学习网考试资料包含高考、自考、专升本考试、人事考试、公务员考试、大学生村官考试、特岗教师招聘考试、事业单位招聘考试、企业人才招聘、银行招聘、教师招聘、农村信用社招聘、各类资格证书考试等各类考试资料。

 

Copyright © 2002-2024 cuapp.net All Rights Reserved
更新时间:2025/5/17 11:04:18