欢迎大家来到IT世界,在知识的湖畔探索吧!
因为用groupBy + 聚合函数 只能求出Top1, 不能求TopN
这里使用row_number() over()
hive 的开窗函数row_number() over()
技术总结:
row_number() over(partition by sex order by age desc)
这句sql 就是按照下列方式进行分组—>排序–>打标签–>形成新的字段
SELECT a.* FROM ( SELECT enterprise_id ,seller_code--虚拟id或者商家id ,spu_code ,group_buying_id-- 拼团活动id ,sale_inventory--已售库存 ,min_order_num1--起购量1 ,group_buying_type -- 类型 0-报名拼团活动(火拼团购),1-金标拼团活动(高毛专区) ,master_code_has_same ,crm_product_has ,row_number() over (PARTITION BY enterprise_id,seller_code ORDER BY master_code_has_same desc,crm_product_has desc,sale_inventory desc,min_order_num1 asc) rank FROM dc_customer_order_recommend_product_prepare_4 ) a where a.rank <= 20
欢迎大家来到IT世界,在知识的湖畔探索吧!
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/93048.html