根据Hive中的尺寸进行过滤

时间:2018-07-26 08:31:11

标签: hive hiveql

我想根据大小过滤蜂巢中的记录,如何实现? 请帮忙。

查询

SELECT 
    t1.member_id,
    t2.first_name,
    t2.date_of_birth_sk,
    COLLECT_LIST(t3.measure_title) as all_measure_desc,
    size( COLLECT_LIST(t3.measure_title)) as ps
FROM qms_gic_lifecycle t1 
INNER JOIN dim_member t2 
on t1.member_id = t2.member_id
INNER JOIN dim_quality_measure t3 
on t1.quality_measure_id = t3.quality_measure_id
where t1.status <> 'closed'

GROUP BY  
    t1.member_id,
    t2.first_name,
    t2.date_of_birth_sk;

1 个答案:

答案 0 :(得分:0)

当具有大小值的 ps 字段时,将您的查询用作子查询,然后使用带有 ps 字段的where子句仅过滤匹配的行。

hive> Select * from (
SELECT 
    t1.member_id,
    t2.first_name,
    t2.date_of_birth_sk,
    COLLECT_LIST(t3.measure_title) as all_measure_desc,
    size( COLLECT_LIST(t3.measure_title)) as ps
FROM qms_gic_lifecycle t1 
INNER JOIN dim_member t2 
on t1.member_id = t2.member_id
INNER JOIN dim_quality_measure t3 
on t1.quality_measure_id = t3.quality_measure_id
where t1.status <> 'closed'

GROUP BY  
    t1.member_id,
    t2.first_name,
    t2.date_of_birth_sk) s 
    where s.ps >= <size_value>;