根据唯一条件在 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);
我需要在 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);