sql 中位数_大量数据(1600万条)的分组分位数(极大值 90分位 75分位 中位数)...

本文讲述了在MySQL数据库中由于缺少内置中位数函数,如何使用R语言处理1600万条数据的分组分位数计算,包括75分位数、95分位数和最大值。通过`read.csv`导入数据,利用R的`tapply`和`quantile`函数计算分位数,以及`sqldf`包执行SQL查询最大值,最终高效解决了问题。
摘要由CSDN通过智能技术生成

最近工作中需要处理一个实际的问题:

找出几类产品(实际上一共是10类),历史上所有日销量的极大值还有各种分位数。

处理好的表字段只有两个:产品类型,日销量。共1600万条。

本来很简单,想着用sql做个分组,公式聚合一下就完事了。估摸着10分钟肯定能搞定。

只可惜,公司用的mysql库,并没有内置中位数函数median()。

那怎么办呢?

导出来用excel吧,之前100万条数据的时候,我就分产品导出来,然后用excel搞10次。对,就是这么效率低下。胜在不用在mysql里写复杂的sql逻辑,半个小时搞定了。

可是现在,1600万条呀。excel承载不了这么大的重任,分分钟撂挑子。不,它连打开都不能。

194M的CSV。

110522d7830c9a895a28a860b591f724.png

于是,只能用好久没用的R语言了。

以下是步骤:

1、先导入数据(几秒钟搞定)

data3<-read.csv("abc0702.csv",as.is = TRUE, encoding = 'UTF-8')

不加encoding = 'UTF-8'中文会乱码。

原始数据大概长这样ÿ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值