--拉链(按用户分区,按时间升序,按页面拉链)SELECT
name,
page,
LEAD(page,1)OVER(PARTITIONBY name ORDERBY hms),
hms,
LEAD(hms,1)OVER(PARTITIONBY name ORDERBY hms)FROM pages;
2、页面跳转分组计数
SELECT skip,COUNT(1)FROM(SELECT--字符串拼接,若有null则拼接成null
CONCAT(page,'-',LEAD(page,1)OVER(PARTITIONBY name ORDERBY hms)) skip
FROM pages)t
WHERE skip ISNOTNULLGROUPBY skip;
3、页面访问分组计数
SELECT page,COUNT(1)FROM pages GROUPBY page;
4、联表
WITH--被除数:页面跳转分组计数
t0 AS(SELECT skip,COUNT(1) skip_count FROM(SELECT
CONCAT(page,'-',LEAD(page,1)OVER(PARTITIONBY name ORDERBY hms)) skip
FROM pages)t
WHERE skip ISNOTNULLGROUPBY skip
),--除数:页面访问分组计数
t1 AS(SELECT page,COUNT(1) page_count FROM pages GROUPBY page)SELECT
t0.skip,
t0.skip_count,
t1.page_count,
t0.skip_count/t1.page_count
FROM t0
LEFTJOIN t1
ON SUBSTR(t0.skip,1,LENGTH(t1.page))=t1.page;