oracle 查询特定时间仅在某渠道购物过的用户数

本博客只做日常技术经验总结,不涉及真实内容,以下字段均为虚拟。

订单表 ID(订单编号),USER_ID,pharmacy_id(店铺编码)

店铺表 ID(店铺编码),COOPERATE_TYPE(合作类型)

昨天业务让提个数,刚来公司也是在尽快熟悉业务数据的过程,一开始没有细想,写成了如下sql:

select count(distinct a.user_id)
from
(select user_id,PHARMACY_ID  from c_order1
where CREATED_AT>=to_date('2021-01-01 00:00:00','YYYY-MM-DD HH24:MI:SS')
union all 
select user_id,PHARMACY_ID from c_order2
where CREATED_AT>=to_date('2021-01-01 00:00:00','YYYY-MM-DD HH24:MI:SS'))a
left join p_pharmacy b on a.PHARMACY_ID=b.id 
where b.COOPERATE_TYPE=4

后来仔细一想,我这样只是查出了在4渠道购物过的用户数,这个用户数里的用户可能也在其他渠道购物过,所以又重新写了一下,针对用户在where结果集重新进行了过滤

select count(distinct a.user_id)
from
(select user_id,PHARMACY_ID from c_order1
where CREATED_AT>=to_date('2021-01-01 00:00:00','YYYY-MM
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值