代码之家  ›  专栏  ›  技术社区  ›  Matt W.

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

  •  0
  • Matt W.  · 技术社区  · 7 年前

    我正在尝试查询一个表并消除查询结果的重复

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

    我要做的是给我一个不同的id、名称、日期等的列表,这是每个分组市场、国家组的第一行,它们首先按userrole排序。有办法这样做吗 hive 是吗?

    在里面 R 这将是:

    df %>%
        select(id, name, date) %>%
        group_by(market, country) %>%
        arrange(userrole) %>%
        slice(1)
    
    1 回复  |  直到 7 年前
        1
  •  1
  •   Vamsi Prabhala    7 年前

    distinct 在sql和hiveql中,不是函数,而是 关键字 是的。指定 不同的 每个查询一次将提供不同的结果,如 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