专栏名称: 爱数据LoveData
中国统计网(www.itongji.cn),国内最大的数据分析门户网站。提供数据分析行业资讯,统计百科知识、数据分析、商业智能(BI)、数据挖掘技术,Excel、SPSS、SAS、R等数据分析软件等在线学习平台。
目录
相关文章推荐
51好读  ›  专栏  ›  爱数据LoveData

【SQL数据分析实战】活动抽奖逻辑案例

爱数据LoveData  · 公众号  · BI  · 2019-08-20 18:29

正文

请到「今天看啥」查看全文


count 汇总函数


理逻辑:


找出在某个时间区间里面有消费记录的会员编号

为会员编号随机的排序

为排好序的会员列表添加序号

取出序号小于总会员数的 30%

/*

dimMemberID:会员 ID

dimDateID:下单日期

dimShopID:门店 ID

取出门店、会员的 ID 号,并使用 group by 进行去重操作

*/


写代码:

select dimShopID

, dimMemberID

from dw.fct_sales

where dimDateID between 20170602 and 20170602

group by dimShopID

,dimMemberID


select dimShopID

, dimMemberID

, row_number() over(partition by dimShopID order by random() ) as rn

, count(dimMemberID) over(partition by dimShopID ) as member_cnt

from (

select dimShopID , dimMemberID

from dw.fct_sales

where dimDateID between 20170602 and 20170602

group by dimShopID ,dimMemberID

) as q1


上面这段有点复杂了,让我一一道来。


row_number 的功能是给表里每一个记录加一个序号,举个例子


会员 ID







请到「今天看啥」查看全文