我想知道是否可以对具有 as 数据类型数组的列运行聚合函数。
该表按以下方式创建:
CREATE EXTERNAL TABLE tmp_table (
start_date array<string>,
customer_id string
) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
LOCATION '<my-s3-bucket>'
start_date 包含一组以逗号分隔的日期。 我想使用 MIN 函数找到这些日期中的最小值:
SELECT customer_id, MIN(start_date) FROM tmp_table GROUP BY customer_id
如果 MIN 不适用于数组结构,有什么替代解决方案?
谢谢!
最佳答案
尝试对数组进行排序并取第一个元素:
select customer_id, sort_array(start_date)[0] as min_start_date
from tmp_table;
如果表可以包含多个 customer_id 记录,则取 min(sort_array(start_date)[0])
关于arrays - Hive:数组列上的聚合函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44587724/