mysql 取所有字段值不为空的个数_Java | MySQL 分布函数、前后函数你认识吗?

MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

今天来讲解下MySQL 分布函数、前后函数,让不懂得同学对其有个简单的认识,要是有持不同看法的或是想要补充的同学,也欢迎评论区讨论哦~

今日详解内容包括:分布函数、前后函数。

分布函数

(1)应用场景:快速查看某个记录所归属的组内的比例

(2)分布函数分类及基础语法

6a90e9d521c21e82c339a3f36e126c20.png

(3)两种分布函数的介绍

percent_rank() 函数

显示的结果,每行按照如下公式进行计算: (rank-1)/(rows-1)

rank 为 RANK() 函数产生的序号,rows 为当前窗口的记录总行数

对于重复值,取重复值的第一行记录的位置

cume_dist() 函数

显示的结果,每行按照如下公式进行计算:rank/rows

rank 为 RANK() 函数产生的序号,rows 为当前窗口的记录总行数

对于重复值,取重复值的最后一行记录的位置

(4)实例比较两种分布函数

4b46277eda21b8fd0947e0ea4cbff23b.png

数据结果:

c7e1e967fd3471b270d241241a853508.png

前后函数

(1)应用场景

常用于计算时间序列数据,计算时间间隔,如会员每次购买商品的时间间隔等

当前行与前 n 行或者后 n 行的值

若有分区,分区值则所有分区的前后 n 行的值

(2)前后函数分类及基础语法

d2c0b752ff46a9d01364c583abbcc011.png

(3)两种前后函数的介绍

lag(字段,N) 函数,指当前行的前 N 行的对应字段值

lead(字段,N) 函数,指当前行的后 N 行的对应字段值

(4)实例比较前后函数

213f2f39b8a764b43d0d1acfa2b7f4fb.png

数据结果:

9a5400af4c42ebdd9e57bee7fdbad702.png

结果解析:

由 lag(t1.dimDateID,1) 产生的数列 t1,观察红线连接的两个数字,显示 8 号客户,最新购买商品的时间为 20170607,以此时间点向前查询,上 1 次购买商品的时间为 20170603

由 lag(t1.dimDateID,2)产生的数列 t2,观察红线连接的两个数字,显示 9 号客户,最新购买商品的时间为 20170615,以此时间点向前查询,上 2 次购买商品的时间为 20170602

由 lead(t1.dimDateID,1) 产生的数列 t3,观察红线连接的两个数字,显示 9 号客户,以 20170613 向后查询,下 1 次购买商品的时间为 20170615

好了,以上就是今天分享的MySQL 分布函数、前后函数相关知识了,希望能给大家带来一定帮助!

有问题可以在下方评论区讨论或者找我私聊哦~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值