sqlserver 求平均数,中位数,众数

sqlserver 聚合函数结合 窗口函数的巧妙使用。

SELECT 
--    *,
    t1.remark,
    t1.my_count,
    t1.my_sum,
    t1.my_avg,
    t1.my_min,
    t1.my_max,
/*my_median : 中位数*/
    t2.my_median,
/*my_most : 众数*/
    t3.my_most,
    'xxx' AS q
FROM (
    SELECT 
        remark,
        COUNT(job_status) AS my_count,
        SUM(job_status) AS my_sum,
        AVG(job_status) AS my_avg,
        MIN(job_status) AS my_min,
        MAX(job_status) AS my_max
    FROM  demo.sys_job_po
    GROUP BY 
        remark
)AS t1
LEFT JOIN 
(/*=========中数==================*/
    SELECT 
        remark,
        AVG(job_status*1.0) AS my_median
    FROM (
        SELECT 
            ROW_NUMBER() OVER(PARTITION BY remark ORDER BY job_status) AS my_row,
            COUNT(1) OVER(PARTITION BY remark ) AS my_count,
            job_status,
            remark
        FROM  demo.sys_job_po
    )AS a
    WHERE my_row = my_count/2 +1
        OR my_row = (CASE WHEN my_count%2 = 0 THEN my_count/2 ELSE my_count/2 +1  END)
    GROUP BY 
        remark
/*===========================*/
)AS t2 ON t2.remark = t1.remark 
    
LEFT JOIN 
(/*=========众数==================*/
    SELECT
        remark,
        my_row,
        job_status AS my_most
    FROM (
        SELECT remark,
            ROW_NUMBER() OVER(PARTITION BY remark ORDER BY my_most DESC) AS my_most_row_id,
            my_row,
            job_status
        FROM (
            SELECT  remark,
                ROW_NUMBER() OVER(PARTITION BY remark ORDER BY job_status) AS my_row,
                COUNT(job_status) OVER(PARTITION BY remark, job_status) AS my_most,
                job_status
            FROM  demo.sys_job_po
        )AS a
    )AS b 
    WHERE my_most_row_id = 1
/*===========================*/
)AS t3 ON t3.remark = t1.remark

sqlserver 求平均数,中位数,众数相关推荐

  1. 平均数,中位数,众数这三个概念的区别和联系分别是什么?

    平均数.众数.中位数这三个统计量的各自特点是: 平均数的大小与一组数据里的每个数据均有关系,其中任何数据的变动都会相应引起平均数的变动:众数则着眼于对各数据出现的次数的考察,其大小只与这组数据中的部分 ...

  2. C语言 平均数 中位数 众数

    平均值 中位数 众数 在习题8.8的基础上, 用一个整型数组feedback保存调查的40个反馈意见.用函数编程计算反馈意见的平均值(Mean) .中位数(Median) 和众数(Mode) .中位数 ...

  3. 平均数 中位数 众数的实际意义

    平均数:反映了一组数据的平均大小,常用来一代表数据的总体 "平均水平". 中位数:像一条分界线,将数据分成前半部分和后半部分,因此用来代表一组数据的"一般水平" ...

  4. 用计算机求平均数怎么做,3. 利用计算器求平均数

    3. 利用计算器求平均数 (3页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.90 积分 3. 利用计算器求平均数一. 填空题1. 用计算器求平均数时 ...

  5. JAVA求数组的平均数,众数,中位数

    目录 1.名称解释 2.实例代码 (1)求平均数 (2)求中位数 (3)求众数 1.名称解释 平均数:是指一组数据之和,除以这组数的个数,所得的结果就是平均数. 中位数:中位数是指把一组数据从小到大排 ...

  6. JzxxOJ 1180: 【入门】求N个整数的平均数、众数和中位数

    求N个整数的平均数.众数和中位数 题目描述 求N个整数的平均数,众数和中位数. 输入 第一行为整数N(5 <= N <= 10000 ) 第二行为空格隔开的N个数Ai(0 <= Ai ...

  7. C++编程计算平均数、众数和中位数,可以快速解决计算问题

    说明 求N个整数的平均数,众数和中位数. 小知识: 众数 如有9个数:17 13 17 9 17 17 3 16 17 17出现的次数最多,即为这组数的众数. 此题保证众数是唯一的. 中位数 如有9个 ...

  8. 学习笔记-DataFrame求平均数,求众数

    df = pd.DataFrame({'A': [1, 2, 1, 2, 1, 2, 3],'B':[1, np.NaN, 3, 2, 1, 3, 3]}) df >>> A B 0 ...

  9. python计算平均值标准差和中位数_如何使用python求平均数、方差、中位数

    python求平均数.方差.中位数的例子 CalStatistics.py def getNum(): #获取用户不定长度的输入 nums = [] iNumStr = input("请输入 ...

最新文章

  1. 网站架构之统一数据服务平台技术
  2. 浅析string 与char* char[]之间的转换
  3. java入参为方法_Java命令注入原理结合Java Instrument技术(FreeBuf首发)
  4. 前置交换机数据交换_我们的数据科学交换所
  5. java 蓝桥杯算法提高 9-2 文本加密
  6. Kibana插件sentinl实现邮件报警
  7. 基础集群部署 - kubernetes-simple
  8. Jmeter接口压力测试学习总结
  9. 阿里云上线视频云剪辑 快速产出PGC短视频不再是问题!
  10. 动易CMS粘贴word图片且图片文件自动上传功能
  11. Zigbee之旅:第一个CC2430程序LED-IAR相关设置
  12. 我的世界手机版服务器显示即将推出,我的世界1.11-pre1发布 正式版本官方即将推出...
  13. centos 关于logrotate的使用
  14. win10硬盘锁怎么解除_如何解锁BitLocker加密的Win10系统【图文教程】
  15. python比较学生名单与签到名单查缺勤(Excel)
  16. 餐饮日销售情况分析仪
  17. Oracle数据库查询数据语法
  18. linux开启(永久)端口
  19. linux 编辑器下复制粘贴,Linux-vim编辑器 常用命令 复制粘贴
  20. ENDC优先选网流程介绍

热门文章

  1. 宏仔微商杂货商城小店源码
  2. 服务器内文件大小排序,centos 如何查找大文件,文件排序方案大全
  3. 【UML】-- 顺序图练习题含答案(自动售货机、学生选课、提款机、购买地铁票、洗衣机工作)
  4. Mac 软件专题:教学参考工具软件-外语/医学/天文/地理/数学等
  5. 【Javascript】Js闭包
  6. 西邮Linux兴趣小组2021纳新试题
  7. nginx设置自己的404模板页面
  8. 5G UE鉴权流程详解 UE Authentication
  9. C#调用sql存储过程
  10. ABG(应用负载网关)——终端共享接入检测方案、智能链路负载均衡(LLB)