SQL存储过程——求每小时的99分位数

这篇博客介绍了如何在SQL中编写存储过程来计算每小时的99分位数。作者在实习期间遇到此问题,发现网上资料较少,故分享其解决方法。99分位数的步骤包括数据排序、确定分位数位置和取对应数据。存储过程中重点在于优化和使用LIMIT配合游标。此外,文中提到存储过程还包含了计算平均值、最大值和最小值的功能,但未详细展开。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第二篇博客,想分享一下在实习工作中一个SQL的存储过程。在写这个存储过程的时候,查阅了各大百度,贴吧,博客上的资料,但是均是没有找到99分位数的写法。可能是这个的应用场景较少吧。但是也希望会对一些童鞋有帮助。

99分位数的逻辑想必大家都清楚,总共三步:
第一,
针对这一小时内的所有数据,按照从小到大进行排序
第二,
计算99分位所在的位置,0.99×(数据的总数)
(向上取整还是向下取整看自身的需求)
第三,
最后取该位置所在的数据。

下面开始进行正文了,写存储过程。(99分位数的情况逻辑简单,若是用PYTHON写是很简单的,写个函数就能解决,但是在SQL中还是比较复杂的,普通的SQL语句还是不容易实现)

DELIMITER $
CREATE PROCEDURE cal_time_minute()
BEGIN
    DECLARE _index_cal BIGINT(11); --索引位置
    DECLARE _group_count BIGINT(11); --每组数量
    DECLARE _create_
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值