1,【10025】group by 提示Expression Not In Group By Key的解决办法
先说下需求:对一个表去重查询,只留下最早的一条数据,按照mysql的写法
selct c.* from (
select user_id,create_date from a order by create_date asc
) c group by c.user_id
在mysql 里面可以执行,但到hive 里面就会报错了,而且一般不会直接报 10025 错误,它会报【10004】【10002】
这样就会误导我们了,其实hive group by 比较严格,这点跟oracle一样,这时可以借用hive的collect_set或者collect_list函数解决即可
selct c.user_id,collect_set(c.create_date)[0] from (
select user_id,create_date from a order by create_date asc
) c group by c.user_id