eg:按照device_id_md5,package_name,adx_id,ad_id分组后,获取device_id_md5,package_name,adx_id,ad_id,req_time五个字段的值
select req_time,device_id_md5,package_name,ad_id from (select count(1) as num,device_id_md5,package_name,adx_id,ad_id,split(concat_ws(',',collect_list(req_time)),',') req_times from req_log_detail where log_date = '20170703' and adx_id = 2 group by device_id_md5,adx_id,package_name,ad_id having num > 60 ) a lateral view explode(a.req_times) ad_req_time as req_time order by device_id_md5;
其中:
split(concat_ws(',',collect_list(req_time)),',') 将req_time列转行;
注:collect_set是去重的。
lateral view explode(a.req_times) ad_req_time as req_time 将req_times行转列