2017-06-16 94 views
1

我想知道是否可以在具有數據類型數組的列上運行聚合函數。Hive:數組列上的聚合函數

表創建按如下:

CREATE EXTERNAL TABLE tmp_table (
    start_date array<string>, 
    customer_id string 
) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' 
    LOCATION '<my-s3-bucket>' 

起始日期包含日期逗號分隔的集合。 我想找到的最小使用MIN函數的日期:

SELECT customer_id, MIN(start_date) FROM tmp_table GROUP BY customer_id 

如果MIN不適用的陣列結構,這將是一個替代的解決方案?

謝謝!

回答

0

嘗試排序陣列和取第一個元素:

select customer_id, sort_array(start_date)[0] as min_start_date 
    from tmp_table; 

如果表可以包含CUSTOMER_ID多個記錄再取min(sort_array(start_date)[0])