Hive 使用秩筛选记录

Hive 使用秩筛选记录,hive,bigdata,Hive,Bigdata,我正在联接两个表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,

我正在联接两个表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;

秩=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;
“不工作”是什么意思?您能显示一些输入数据、实际输出和预期输出吗?