用SQL伪代码理解DEF和EARLIER函数

楼主
我是社区第99870位番薯,欢迎点我头像关注我哦~

earlier函数非常抽象,但是如果你会SQL,阅读以下伪代码,一定能快速掌握earlier函数。

基于https://help.fanruan.com/finebi/doc-view-1991.html的案例,以下是SQL伪代码。

--当前节点的客户数:DEF(SUM_AGG(${客户数}),${关键节点})
select
关键节点,
sum(客户数) as "当前节点的客户数"
from 汽车行业销售漏斗
group by 关键节点

--earlier就是组内升序排列,获取到当前的索引值
假设有数据5、1342,
先排序成1、2345,
earlier(3)=3

--排名:DEF(COUNTD_AGG(${关键节点})+1,${关键节点},${当前节点的客户数}>EARLIER(${当前节点的客户数}))
select
关键节点,
count(关键节点)+1 as "排名"
from 汽车行业销售漏斗
--假设当前客户数的大小排名第2,earlier(2)=2,相当于查到大于第2名的数据有1条,再加1,就得出排名第2
--注意【】里面的其实相当于是字段名
where 【当前节点的客户数】>earlier(当前节点的客户数)
group by 关键节点

--上一步的客户数:DEF(SUM_AGG(${客户数}),${关键节点},${排名}+1=EARLIER(${排名}))
select
关键节点,
count(关键节点) as "排名"
from 汽车行业销售漏斗
--假设当前客户数的大小排名第2,earlier(2)-1=1,相当于查到排名等于1的数据
--注意【】里面的其实相当于是字段名
where 【排名】=earlier(排名)-1
group by 关键节点
分享扩散:

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

返回顶部 返回列表