业务指标分析 | 多维度统计:统计每一个省份每一小时点击Top3的广告

场景准备

某张表里有字段:provinceid、hour、adid,表示省份id、小时段和广告id,每一行表示一份广告点击数据,模拟数据如下。

省份id	广告id
1	1	100
1	1	100
1	2	100
1	2	112
1	1	101
1	2	112
1	2	102
1	1	102
1	1	103
1	2	112
1	2	112
1	1	101
1	2	112
2	1	100
2	1	121
2	2	101
2	2	121
2	1	104
2	2	121
2	2	111
2	1	104
2	1	103
2	2	111
2	2	121
2	1	104
3	2	121
3	2	112
3	1	112
3	2	121
3	1	100

业务要求

统计每一个省份每一个小时点击量Top3的广告,格式如下:

proid   hour    adid    countclick      rnk
1       1       100     2       1
1       1       101     2       2
1       1       102     1       3
1       2       112     5       1
1       2       100     1       2
1       2       102     1       3
2       1       104     3       1
2       1       103     1       2
2       1       100     1       3
2       2       121     3       1
2       2       111     2       2
2       2       101     1       3
3       1       100     1       1
3       1       112     1       2
3       2       121     2       1
3       2       112     1       2

SQL分析


select 
  proid, 
  hour, 
  adid, 
  countClick, 
  rnk 
from 
  (
    select 
      proid, 
      hour, 
      adid, 
      countClick, 
      row_number() over(
        distribute by proid, hour sort by countClick desc
      ) rnk 
    from 
      (
        select 
          proid, 
          hour, 
          adid, 
          count(*) countClick 
        from 
          pro_hour_ad_tmp 
        group by 
          proid, 
          hour, 
          adid
      ) t1	# 分组统计省份、小时、广告和点击量
  ) t  # 根据省份id、小时分区,按点击量降序排列,开窗口数据给排名函数
where 
  rnk <= 3;
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值