第二篇博客,想分享一下在实习工作中一个SQL的存储过程。在写这个存储过程的时候,查阅了各大百度,贴吧,博客上的资料,但是均是没有找到99分位数的写法。可能是这个的应用场景较少吧。但是也希望会对一些童鞋有帮助。
99分位数的逻辑想必大家都清楚,总共三步:
第一,
针对这一小时内的所有数据,按照从小到大进行排序
第二,
计算99分位所在的位置,0.99×(数据的总数)
(向上取整还是向下取整看自身的需求)
第三,
最后取该位置所在的数据。
下面开始进行正文了,写存储过程。(99分位数的情况逻辑简单,若是用PYTHON写是很简单的,写个函数就能解决,但是在SQL中还是比较复杂的,普通的SQL语句还是不容易实现)
DELIMITER $
CREATE PROCEDURE cal_time_minute()
BEGIN
DECLARE _index_cal BIGINT(11); --索引位置