SQL中求字段的众数和中位数

SQL中求字段中的众数

两种方法

SELECT name ,count(1) a from  db001.table001 group by name 
having count(1) >=  all( select count(1) from table001 group by name );

SELECT name ,count(1) a from  db001.table001 group by name 
having count(1)>=  (select max(a) from ( select count(1) a  from table001 group by name )t );

SQL中求字段中的中位数,简单理解,简单方法

如果数据量为奇数,则是第 (n+1)/2 条,偶数则为 n/2 和 (n+2)/2条的和的平均值。SQL如下

select * from 
(
	select 
		*
		,row_number() over( order by money ) top
		,count(*) over( ) cnt
	from table001
)a  
where if( cnt%2=0, top in (cnt/2,(cnt + 2)/2), top = (cnt + 1)/2) 

里面的SQL查询如下:

在这里插入图片描述

结果图如下:

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值