La ruche collect_list() ne recueille pas de valeurs NULL
Je suis en train de recueillir une colonne avec NULL
s ainsi que certaines valeurs de cette colonne...Mais collect_list
ignore la NULL
s et ne recueille que ceux avec des valeurs en elle. Est-il un moyen de récupérer le NULL
s le long de avec d'autres valeurs ?
SELECT col1, col2, collect_list(col3) as col3
FROM (SELECT * FROM table_1 ORDER BY col1, col2, col3)
GROUP BY col1, col2;
Réelle col3 valeurs
0.9
NULL
NULL
0.7
0.6
Résultant col3 valeurs
[0.9, 0.7, 0.6]
J'espère qu'il y est une ruche d'une solution qui ressemble à ce [0.9, NULL, NULL, 0.7, 0.6]
après l'application de la collect_list.
Vous devez vous connecter pour publier un commentaire.
Cette fonction fonctionne comme ça, mais j'ai trouvé la solution de contournement suivante.
Ajouter un cas lorsque déclaration à votre requête pour vérifier et maintenir les valeurs Null.
Maintenant, parce que vous aviez un élément de chaîne ('NULL') la totalité des résultats est un tableau de chaînes de caractères.
À la fin il suffit de convertir le tableau de chaînes de caractères dans un tableau de valeurs doubles.
SELECT col1, col2, collect_list(coalesce(col3, "NULL") as col3 FROM (SELECT * FROM table_1 ORDER BY col1, col2, col3) GROUP BY col1, col2
Remarque: Si votre colonne est une CHAÎNE, il ne sera pas avoir une valeur NULLE, même si votre fichier externe ne dispose pas de données pour cette colonne