Sql 如何在多周内按周限制?
在我下面的查询中,我试图通过CTR带回每周前750个订单ID 不是所有周的前750名。我不知道该怎么做Sql 如何在多周内按周限制?,sql,hive,limit,Sql,Hive,Limit,在我下面的查询中,我试图通过CTR带回每周前750个订单ID 不是所有周的前750名。我不知道该怎么做 select "topctrbyQ32015", weekofyear(day),order_id, (sum(clicks)/sum(impressions)) as ctr from RDZ_TABLE rdz where day >= '2015-07-06' and day <= '2015-09-27' group by "topctrbyQ32015", weekofy
select "topctrbyQ32015", weekofyear(day),order_id, (sum(clicks)/sum(impressions)) as ctr
from RDZ_TABLE rdz
where day >= '2015-07-06'
and day <= '2015-09-27'
group by "topctrbyQ32015", weekofyear(day),order_id
order by ctr desc
limit 750;
您需要使用Hive 0.11及更高版本中提供的窗口功能:
select
woy,
order_id,
ctr,
rank() OVER (partition by woy order by ctr desc) as ctr_rank
from
( select
weekofyear(day) as woy,
order_id,
(sum(clicks)/sum(impressions)) as ctr
from
RDZ_TABLE rdz
where
day >= '2015-07-06'
and day <= '2015-09-27'
group by
weekofyear(day),order_id
) z
where
rank() OVER (partition by woy order by ctr desc) <= 750
有关更多详细信息,请参阅: