2017-06-16 3 views
1

Je me demandais s'il était possible d'exécuter une fonction d'agrégat sur une colonne ayant un tableau de type de données.Hive: fonction d'agrégat sur la colonne de tableau

La table est créée conformément à ce qui suit:

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 contient un ensemble de dates séparées par des virgules. Je veux trouver le minimum de ces dates en utilisant la fonction MIN:

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

Si MIN n'est pas applicable à une structure de tableau, ce serait une solution de rechange?

Merci!

Répondre

0

Essayez de trier tableau et prendre premier élément:

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

si la table peut contenir plus d'un enregistrement pour customer_id puis prendre min(sort_array(start_date)[0])