StudyPrestoDiffHive - huangyuefeng/study GitHub Wiki
学习Presto入门之比较Presto和Hive的SQL语法
- 在2017年4月1日发生交易的数量
Style | SQL |
---|---|
Presto | select count(*) from record where trancation_date = date '2017-04-01' |
Hive | select count(*) from record where trancation_date = date '2017-04-01' |
- 不同年龄消费的情况
Presto
select
cast((year(CURRENT_DATE)-year(birth)) as integer) as age,
sum(price) as totalPrice
from record
join user_dimension
on record.uid=user_dimension.uid
group by cast((year(CURRENT_DATE)-year(birth)) as integer)
order by totalPrice desc
Hive
select
cast(DATEDIFF(CURRENT_DATE, birth)/365 as int) as age,
sum(price) as totalPrice
from record
join user_dimension
on record.uid=user_dimension.uid
group by cast(DATEDIFF(CURRENT_DATE, birth)/365 as int)
order by totalPrice desc;
- 不同品牌被消费的情况
Presto=Hive
select
brand,sum(price) as totalPrice
from record
join brand_dimension
on record.bid=brand_dimension.bid
group by brand_dimension.brand
order by totalPrice desc;
- 不同省份消费的情况
Presto=Hive
select
province, sum(price) as totalPrice
from record
join user_dimension
on record.uid=user_dimension.uid
group by province
order by totalPrice desc;
- 不同年龄消费的商品类别情况(不同年龄消费不同商品类别的总价)
Presto
select
cast((year(CURRENT_DATE)-year(birth)) as integer) as age,
category,
sum(price) as totalPrice
from record
join user_dimension
on record.uid=user_dimension.uid
join brand_dimension
on record.bid=brand_dimension.bid
group by cast((year(CURRENT_DATE)-year(birth)) as integer), category
order by age, category, totalPrice;
Hive
select
cast(DATEDIFF(CURRENT_DATE, user_dimension.birth)/365 as int) as age,
category,
sum(price) as totalPrice
from record
join user_dimension
on record.uid=user_dimension.uid
join brand_dimension
on record.bid=brand_dimension.bid
group by cast(DATEDIFF(CURRENT_DATE, user_dimension.birth)/365 as int), category
order by age, category, totalPrice;