经验:如何快速知道订单号是否重复?(因为Hive中没有主键,mysql严格要求主键)可以将订单号作为主键
方式一: cnt 没有去重,order_cnt 去重, 如果得到结果相同,则表是没有重复
select
count(*) cnt ,count(distinct order_id) order_cnt
from orders
//结果:
cnt order_cnt
3421083 3421083
方式二:根据订单号进行分组,订单号不能有大于1的情况,就代表没有重复
select
order_id, count(order_id) order_cnt
from orders
group by order_id
having order_cnt > 1
结果
Total MapReduce CPU Time Spent: 52 seconds 710 msec
OK
order_id order_cnt
Time taken: 436.491 seconds
方式三:
select *
from
(select
order_id, count(order_id) order_cnt
from orders
group by order_id
) t
where order_cnt > 1