既想聚合count(1) over(partition by act_arr_city) as city_all_num部分数据,又想同时取其他数据怎么办用over()

select

  concat(act_dep_city,'_',act_arr_city) as key,

  concat(round(cast(city_line_num as float)/cast(city_all_num as float)*100,1),'%','-',rn) as value

from(

  select

      act_dep_city,

      act_arr_city,

      city_all_num,

      count(1) as city_line_num,

      row_number() over(partition by act_arr_city order by count(1) desc) as rn

  from(

      select

        act_dep_city,

        act_arr_city,

        count(1) over(partition by act_arr_city) as city_all_num

      from

        f_wide.wide_order where dt='20200530'

  )A group by act_dep_city,act_arr_city,city_all_num

)A

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。