hive取等分数据

 1 %sql
 2 select
 3     t3.*
 4 from (
 5     select
 6         t2.*
 7         ,row_number() over(partition by t2.pt order by t2.pv) as rn
 8     from (
 9         select
10              t1.cookieid
11             ,t1.createtime
12             ,t1.pv
13             ,NTILE(2) OVER(ORDER BY t1.pv) AS pt  --分组内将数据分成2片
14         from (
15             select 'cookie1' as cookieid ,'2015-04-10' as createtime, 1   as pv union all
16             select 'cookie1' as cookieid ,'2015-04-11' as createtime, 2   as pv union all
17             select 'cookie1' as cookieid ,'2015-04-12' as createtime, 3   as pv union all
18             select 'cookie1' as cookieid ,'2015-04-13' as createtime, 4   as pv union all
19             select 'cookie1' as cookieid ,'2015-04-14' as createtime, 5   as pv union all
20             select 'cookie1' as cookieid ,'2015-04-15' as createtime, 6   as pv union all
21             select 'cookie1' as cookieid ,'2015-04-16' as createtime, 7   as pv union all
22             select 'cookie2' as cookieid ,'2015-04-10' as createtime, 8   as pv union all
23             select 'cookie2' as cookieid ,'2015-04-11' as createtime, 9   as pv union all
24             select 'cookie2' as cookieid ,'2015-04-12' as createtime, 10  as pv union all
25             select 'cookie2' as cookieid ,'2015-04-13' as createtime, 11  as pv union all
26             select 'cookie2' as cookieid ,'2015-04-14' as createtime, 12  as pv union all
27             select 'cookie2' as cookieid ,'2015-04-15' as createtime, 13  as pv union all
28             select 'cookie2' as cookieid ,'2015-04-16' as createtime, 14  as pv
29         ) t1
30     ) t2
31 ) t3
32 where t3.rn = 1
33 ;

猜你喜欢

转载自www.cnblogs.com/chenzechao/p/9283069.html