mysql/hive查询一个数组中每个项的一个结果

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

我有一个ID列表,我对在配置单元中选择数据感兴趣。对于这些id中的每一个,都有一个或多个实体存储在一个名为 books 有这个身份证的人 global_parent_id 列。我想知道是否有一个查询,我可以写在哪里我传递的id列表中,对于列表中的每个id,只得到一个条目 books 它的id是 global_parent_id . 我正在尝试这个配置单元查询(也会接受mysql的建议),但是它只返回一个结果,而我想为每个父图书id返回一个子图书id。谢谢。

select distinct(book_id) from books where global_parent_id in (‘23434’, 23425’, ‘22322’) limit 1;
093gszye

093gszye1#

limit 1 即使多行满足条件,也只返回1条记录。使用 row_number Hive中的功能(改变 order byrow_number 根据您的规则)

select global_parent_id,child_book_id
from (select global_parent_id,child_book_id,
      row_number() over(partition by global_parent_id order by child_book_id) as rnum
      from books 
      where global_parent_id in ('23434', '23425', '22322')
     ) t
where rnum=1

相关问题