在配置单元查询中获取不同的字段

laik7k3q  于 2021-06-26  发布在  Hive
关注(0)|答案(1)|浏览(440)

我正在尝试查询一个表并对查询结果进行重复数据消除

select distinct(id), distinct(name), distinct(date)
from table
where data_date = '20180722'
and active = True
group by market, country
order by userrole

我要做的是给我一个不同的id,名称,日期等列表,这是从每个分组市场,国家组,这是第一个按用户角色排序的第一行。有没有什么办法可以做到这一点 hive ?
R 这将是:

df %>%
    select(id, name, date) %>%
    group_by(market, country) %>%
    arrange(userrole) %>%
    slice(1)
rqdpfwrv

rqdpfwrv1#

distinct 在sql和hiveql中,hiveql不是一个函数,而是一个关键字。指定 distinct 每次查询一次将得到不同的结果,如 select distinct col1,col2... .
你可以用 row_number 功能来实现这一点。

select id,name,date
from (select t.*,row_number() over(partition by market,country order by userrole) as rnum
      from tbl t
     ) t
where rnum=1

相关问题