根据唯一条件在 HIVE 选择记录中创建新的 table

Create new table in HIVE selecting records based on unique condition

我需要在 HIVE 中创建数据 table,其中将包含具有 2 条或更多记录且有 100 天或更长时间的 ID,我如何在 HIVE 中执行此操作?

您可以使用 window 函数来计算天数等于或大于 100 的行数:

select t.*
from (select t.*,
             sum(case when days >= 100 then 1 else 0 end) over (partition by id) as cnt_100pl
      from t
     ) t
where cnt_100pl >= 2;

您可以使用 Gordon 在他的回复中建议的 window 功能。您也可以使用 co-related sub-query 来执行此操作,如下所示。 (假设 table 名称为 my_table)

Select t1.*
from my_table t1 
where 2 <= (Select count(1) from my_table t2 where t2.id = t1.id and t2.days >= 100); 

所以完整的查询是

Create table my_target_table
As
Select t1.*
    from my_table t1 
    where 2 <= (Select count(1) from my_table t2 where t2.id = t1.id and t2.days >= 100);