使用秩过滤记录

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

我加入了两个表contact和district,这个连接返回了每个城市的多个记录。我想用排名为每个城市挑选一个记录。下面是我的查询,但它不工作。如何更正我的查询?

Select p.name,
    p.city,
    p.district,
    RANK() over (partition by p.city order by p.district asc) as rank 
    from (select
         d.name,
         c.city,
         c.district 
         from contact c inner join district d 
         ON d.district            = c.district
         AND d.districtType          ='d'
         AND d.nametype='2' 
         AND c.district like 'E%'
         where c.city in(1316,1515,19393,8026))p
    rank=1;
f8rj6qna

f8rj6qna1#

秩=1之前缺少where子句

Select p.name,
    p.city,
    p.district,
    RANK() over (partition by p.city order by p.district asc) as rank 
    from (select
         d.name,
         c.city,
         c.district 
         from contact c inner join district d 
         ON d.district            = c.district
         AND d.districtType          ='d'
         AND d.nametype='2' 
         AND c.district like 'E%'
         where c.city in(1316,1515,19393,8026))p
    where rank=1;

相关问题