sql求中位数

sql求解中位数

  • 1. 窗口函数:根据中位数的位置信息进行求解
  • 2. 中位数,正排倒排都是中位数

中位数是指有序数列中,位于 中间位置的数的值
若为奇数,则中间数开始位置=结束位置
若为偶数,则中位数结束位置-开始位置=1

求解公司员工薪水的中位数

select  com_id, floor((count(salary)+1)/2) as start,
floor((count(salary)+2)/2) as end
from employee group by com_id order by com_id

1. 窗口函数:根据中位数的位置信息进行求解

  • 分奇偶条件判断
select com_id,salary
from(select com_id,salary,row_number() over(partition by com_id order by salary desc) as rnk,count(salary) over(partition by com_id) as numfrom employee ) t1
where t1.rnk in (floor(num/2)+1, if(mod(num,2)=0,floor(num/2),floor(num/2)+1)
order by com_id
  • 中位数条件由排序和总和计算
select com_id, salary
from
(select com_id,salary,row_number() over(partition by com_id order by salary Desc) rnk,count(salary) over(partition by com_id) as numfrom employee
) t1
where abs(t1.rnk - (t1.num+1)/2) < 1
order by com_id

注意:不可在一次查询中对窗口函数的结果进行操作
因为查询的顺序为:from->where->group by->having->select->order by

2. 中位数,正排倒排都是中位数

select com_id,salary
from
(select *,row_number() over(partition by com_id order by salary) as rnk1,row_number() over(partition by com_id order by salary desc) as rnk2from employee
) t1
where rnk1=rnk2 or abs(rnk1-rnk2)=1
order by com_id

报错:BIGINT UNSIGNED value is out of range

两种方式修改:

直接修改设置SET sql_mode=‘NO_UNSIGNED_SUBTRACTION’

或者修改代码

select com_id,salary
from
(select *,row_number() over(partition by com_id order by salary) as rnk1,row_number() over(partition by com_id order by salary desc) as rnk2from employee
) t1
where t1.rnk1 = t1.rnk2 or abs(cast(t1.rnk1 as signed)-cast(t1.rnk2 as signed)) = 1

ref:SQL 求中位数

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/664557.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

享元模式~

“享元”我们可以理解为共享元素&#xff0c;比如我们生活中的共享单车&#xff0c;共享充电宝&#xff0c;共享汽车&#xff0c;这样做的目的就是为了提高资源的复用&#xff0c;但对于共享的单车&#xff0c;充电宝等&#xff0c;它的拥有者和创建时间是不相同的&#xff0c;…

interface转string输出打印

文章目录 前言一、interface 转json再转string二、使用类型判断 前言 在开发过程中&#xff0c;有时我们使用interface类型接受某些参数接口或返回类型&#xff0c;但输出时&#xff0c;比如记录日志时存在很多不方便情况&#xff0c;输出string发现输出的乱七八糟&#xff0c…

案例九:寻找丢失的数据

在生活中我们经常会遇到误将重要的数据文件删除或误格式化U盘,今天小编带大家一块来学习将丢失的数据找回,来,首先我们这节案例要使用一个工具(R-Studio) 接下来我们一块来如何将数据恢复; 由于我们软件是英文,我们首先要将切换为中文的;‍

记一次 Android CPU高使用率排查

文章目录 背景排查高占用的进程adb shelltoptop -b -H -n 1 | grep 29337 (打印各线程 cpu使用详情)kill -3 29337 (生成trace文件)adb pull /data/anr /Users/gerry.liang/Desktop定位问题 补充说明: 背景 测试同学反馈我们的App CPU使用率 90% 居高不下,经过一番艰难的排查后…

Facebook的数字合作愿景:创新与未来发展

随着科技的飞速发展&#xff0c;Facebook一直处于数字创新的前沿&#xff0c;致力于构建开放、智能、社交的数字社交体验。本文将深入探讨Facebook的数字合作愿景&#xff0c;探索其在创新与未来发展方面的雄心壮志。 引言 在当今数字化时代&#xff0c;社交媒体不仅是人们沟通…

多线程(进阶三:JUC)

目录 一、Callable接口 1、创建线程的操作 2、编写多线程代码 &#xff08;1&#xff09;实现Runnable接口&#xff08;使用匿名内部类&#xff09; &#xff08;2&#xff09;实现Callable接口&#xff08;使用匿名内部类&#xff09; 二、ReentrantLock 1、ReentrantL…

Docker 容器卷

1、概念介绍 如果是CentOS7安全模块会比之前系统版本加强&#xff0c;不安全的会先禁止&#xff0c;所以目录挂载的情况被默认为不安全的行为&#xff0c;在SELinux里面挂载目录被禁止掉了&#xff0c;如果要开启&#xff0c;我们一般使用--privlegedtrue命令&#xff0c;扩大…

微信小程序新手入门教程三:基础语法介绍

WXML&#xff08;WeiXin Markup Language&#xff09;是框架设计的一套标签语言&#xff0c;可以与各种组件相结合&#xff0c;进行页面构建。 一 常用标签 wxml的语法结构与我们熟悉的html很像&#xff0c;但在细节处略有不同&#xff0c;我们可以参考html标签对比记忆。wxm…

面试150 位1的个数 位运算

Problem: 191. 位1的个数 文章目录 思路复杂度Code 思路 &#x1f468;‍&#x1f3eb; 参考 复杂度 Code public class Solution {// you need to treat n as an unsigned valuepublic int hammingWeight(int n){int res 0;while (n ! 0){res 1;n & n - 1;// 把最后…

python-游戏篇-初级-飞机大战

文章目录 开发环境要求运行方法代码效果 开发环境要求 本系统的软件开发及运行环境具体如下。 操作系统&#xff1a;Windows 7、Windows 10。Python版本&#xff1a;Python 3.7.1。开发工具&#xff1a;PyCharm 2018或VScode。Python内置模块&#xff1a;sys、random、codecs…

聊聊百度造车

10月27日&#xff0c;极越-01上市&#xff0c;一个月后大幅降价&#xff0c;时至今日距离发布已经过去了两个月&#xff0c;官方迟迟不肯公布销量&#xff0c;实际情况大家也都心知肚明。 如今小米汽车技术发布会风头无两&#xff0c;而同一年宣布造车的极越却无人问津&#x…

Hadoop:HDFS学习巩固——基础习题及编程实战

一 HDFS 选择题 1.对HDFS通信协议的理解错误的是&#xff1f; A.客户端与数据节点的交互是通过RPC&#xff08;Remote Procedure Call&#xff09;来实现的 B.HDFS通信协议都是构建在IoT协议基础之上的 C.名称节点和数据节点之间则使用数据节点协议进行交互 D.客户端通过一…

leetcode 28.找出字符串中第一个匹配项的下标(python版)

需求 给你两个字符串 haystack 和 needle &#xff0c;请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标&#xff08;下标从 0 开始&#xff09;。 如果 needle 不是 haystack 的一部分&#xff0c;则返回 -1 。 示例 1&#xff1a; 输入&#xff1a;haystack…

深度学习入门笔记(八)实战经验

前面几节介绍了很多理论,难免会好奇:理论如何与实战结合呢? 本节我们就穿插一点实战经验,来换换脑子~ 1. 显卡warmup 进行深度学习训练和推理时,往往第一次运行的耗时比较高,这是因为显卡需要warm-up,就是“热身”,才能发挥出显卡的性能。 关于热身,个人理解,显卡…

FS【2】:CAT-Net

文章目录 前言AbstractIntroductionMethodsProblem DefinitionNetwork OverviewMask Incorporated Feature ExtractionCross Masked Attention TransformerSelf-Attention ModuleCross Masked Attention ModulePrototypical Segmentation Module Iterative Refinement Framewor…

Unity | Spine动画记录

https://blog.csdn.net/linshuhe1/article/details/79792432 https://blog.csdn.net/winds_tide/article/details/128925407 1.需要的三个文件 通常制作好的 Spine 动画导出时会有三个文件&#xff1a; .png 、.json 和 .atlas&#xff1a; skeleton-name.json 或 skeleton-…

压力测试工具-Jmeter使用总结

目录 一.前言 二.线程组 三.线程组的组件 四.线程组-HTTP请求 1、JSON提取器 2、XPATH提取器 3、正则表达式提取器 五.线程组-断言 1、响应断言 2、JSON断言 六.创建测试 1.创建线程组 2.配置元件 3.构造HTTP请求 4.添加HTTP请求头 5.添加断言 6.添加查看结果树…

算法练习03——滑动窗口

目录 3. 无重复字符的最长子串*438. 找到字符串中所有字母异位词*30. 串联所有单词的子串***(hard) 3. 无重复字符的最长子串* https://leetcode.cn/problems/longest-substring-without-repeating-characters/ class Solution {public int lengthOfLongestSubstring(String …

Mac电脑连接linux远程桌面

起因 家庭中的内网下有一台ubuntu虚拟机&#xff0c;只能通过ssh终端操作或者通过实体机进行操作实在有些不方便。所以便想着通过linux远程桌面的方式进行连接&#xff0c;由于家庭内网&#xff0c;延迟还是非常低的。 步骤 首先在ubuntu虚拟机上安装xrdp&#xff08;可能已…

Vue3下载WEBAPI导出的Excel文件

webApi查询数据保存为Excel /// <summary>/// 获取LMI3D相机涂胶测量数据/// </summary>/// <returns></returns>[HttpPost(Name "GetLMI3DGlueDataToExcel")]public async Task<IActionResult> GetLMI3DGlueDataToExcel(QueryGlueM…