Hive综合案例练习(中级)第十三题:即时订单比例

即时订单比例

题目需求

订单配送中,如果期望配送日期和下单日期相同,称为即时订单,如果期望配送日期和下单日期不同,称为计划订单。

请从配送信息表(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;

你可能感兴趣的:(Hive综合案例练习,hivesql,row_number)