本博客只做日常技术经验总结,不涉及真实内容,以下字段均为虚拟。
订单表 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