zoukankan      html  css  js  c++  java
  • 统计sql语句

    --测试数据
    DECLARE @t TABLE(ID int PRIMARY KEY,col decimal(10,2))
    INSERT @t SELECT 1 ,26.21
    UNION ALL SELECT 2 ,88.19
    UNION ALL SELECT 3 , 4.21
    UNION ALL SELECT 4 ,76.58
    UNION ALL SELECT 5 ,58.06
    UNION ALL SELECT 6 ,53.01
    UNION ALL SELECT 7 ,18.55
    UNION ALL SELECT 8 ,84.90
    UNION ALL SELECT 9 ,95.60

    --统计
    SELECT a.Description,
    Record_count=COUNT(b.ID),
    [Percent]=CASE 
    WHEN Counts=0 THEN '0.00%'
    ELSE CAST(CAST(
    COUNT(b.ID)*100./c.Counts
    as decimal(10,2)) as varchar)+'%'
    END
    FROM(
    SELECT sid=1,a=NULL,b=30  ,Description='<30' UNION ALL
    SELECT sid=2,a=30  ,b=60  ,Description='>=30 and <60' UNION ALL
    SELECT sid=3,a=60  ,b=75  ,Description='>=60 and <75' UNION ALL
    SELECT sid=4,a=75  ,b=95  ,Description='>=75 and <95' UNION ALL
    SELECT sid=5,a=95  ,b=NULL,Description='>=95' 
    )a LEFT JOIN @t b 
    ON (b.col<a.b OR a.b IS NULL)
    AND(b.col>=a.a OR a.a IS NULL)
    CROSS JOIN(
    SELECT COUNTS=COUNT(*) FROM @t
    )c
    GROUP BY a.Description,a.sid,c.COUNTS
    ORDER BY a.sid
    /*--结果:
    Description    Record_count  Percent
    ------------------- ------------------ ---------------------- 
    <30          3            33.33%
    >=30 and <60  2            22.22%
    >=60 and <75  0            0.00%
    >=75 and <95  3            33.33%
    >=95         1            11.11%
    --*/

    antony
    :antony1029@163.com
    :http://antony1029.cnblogs.com
  • 相关阅读:
    react 把时间戳用new Date改为日期
    react-格式化日期
    react-2种方法写法
    React-router4简约教程
    react-addons-css-transition-group
    vue-一些易错点
    Js apply方法详解,及其apply()方法的妙用
    C++中的继承(3)作用域与重定义,赋值兼容规则
    C++中的继承(1) 继承方式
    vim中文帮助文档安装
  • 原文地址:https://www.cnblogs.com/antony1029/p/1791639.html
Copyright © 2011-2022 走看看