oracle在where条件中关于索引字段的使用注意事项

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

提取5日内APP自营订单按照支付方式分别计算订单数和用户数

在提数前,查看了表的索引字段,发现时间范围限制字段也在其中,所以弃用平时比较常见的char(created_at,'yyyy-MM-dd'),用大于小于某时间节点来代替函数的使用,极大的加快了运算时间
 

select 
to_char(created_at,'yyyy-MM-dd') as order_date, 
COUNT(case when pay_type=411111 then ID END)  as 使用云闪付支付订单数,
COUNT(distinct case when pay_type=412455 then user_id END)  as 使用云闪付支付用户数,
COUNT(case when pay_type=398698 then ID END)  as 使用applepay支付订单数,
COUNT(distinct case when pay_type=399090 then user_id END)  as 使用applepay支付用户数,
COUNT(distinct user_id) as APP整体自营购物用户数,
COUNT(ID)  as APP整体自营购物用户数
from 
(
select ID,user_id,pay_type,CREATED_AT,order_source,order_platform from c_order1
union all
select ID,user_id,pay_type,CREATED_AT,order_source,order_platform from c_order2
)
where order_source  in  (...)
and order_platform in (...)
and CREATED_AT>=to_date('2022-06-16 00:00:00','YYYY-MM-DD HH24:MI:SS')
and CREATED_AT<=to_date('2022-06-20 23:59:59','YYYY-MM-DD HH24:MI:SS')
group by to_char(created_at,'yyyy-MM-dd');

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值