Clickhouse windowFunnel函数使用

复制代码
-- 官方文档
https://clickhouse.com/docs/zh/sql-reference/aggregate-functions/parametric-functions/#function-sequencecount
对于事件进行连续跟踪分析能力,适用漏斗或跟踪埋点数据


-- 实际应用
统计一小时内发送相同内容短信失败2次,但第三次发送成功的所有手机号。


-- CK表结构
CREATE TABLE ods.ods_sms_record_all_uuid
(
    `id` Int32,
    `sign_name` String COMMENT '短信签名',
    `mobile_md5` String COMMENT 'md5手机号',
    `method` String COMMENT '发送方式',
    `sms_type` Int32 COMMENT '短信类型',
    `content` String COMMENT '短信内容',
    `service` String COMMENT '短信服务商',
    `send_time` DateTime,
    `identify` String COMMENT '请求标识Identify',
    `success` Int16 COMMENT '是否发送成功',
    `reason` String COMMENT '发送失败原因',
    `outer_id` String,
    `uid` String COMMENT 'uuid',
    `sender` String COMMENT '短信是谁发的',
    `extra` String COMMENT '用户自定义数据',
    `tid` Int64 COMMENT '短信模板id',
    `uuid` String COMMENT '用户uuid',
    `ts` DateTime MATERIALIZED now() COMMENT '入表时间'
)
ENGINE = ReplacingMergeTree()
PARTITION BY toYYYYMM(send_time)
PRIMARY KEY id
ORDER BY id
SETTINGS index_granularity = 8192


-- Query
select mobile_md5 ,content,windowFunnel(3600)(send_time,success=-2,success = -2 ,success=2) as wf
from ods.ods_sms_record_all_uuid sr 
where send_time >='2022-07-01 00:00:00'
group by mobile_md5,content
having wf = 3;
复制代码

 

posted @   捧花大王  阅读(325)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示