即时订单比例
题目需求
订单配送中,如果期望配送日期和下单日期相同,称为即时订单,如果期望配送日期和下单日期不同,称为计划订单。
请从配送信息表(delivery_info)中求出每个用户的首单(用户的第一个订单)中即时订单的比例,保留两位小数,以小数形式显示。期望结果如下:
percentage |
---|
0.5 |
代码实现
select
round(count(if(order_date=custom_date, 1, null))/count(*), 2) percentage
from
(
select
user_id,
order_date,
custom_date,
row_number() over(partition by user_id order by order_date) rn
from delivery_info
)t1
where rn=1;