Je suis nouveau sur Presto et cherche à obtenir les mêmes fonctionnalités que la fonction group_concat dans MySQL. Les deux suivants sont-ils équivalents? Sinon, des suggestions pour recréer la fonctionnalité group_concat dans Presto?
MySQL:
select
a,
group_concat(b separator ',')
from table
group by a
Presto:
select
a,
array_join(array_agg(b), ',')
from table
group by a
(Trouvé cela comme une solution de contournement Presto suggérée ici lors de la recherche de la fonctionnalité group_concat.)
Essayez d'utiliser ceci à la place de group_concat dans Presto ::
select
a,
array_join(array_agg(b), ',')
from table
group by a
De plus, si vous recherchez uniquement des valeurs uniques - un équivalent à group_concat(distinct ... separator ', ')
- essayez ceci:
array_join(array_distinct(array_agg(...)), ', ')
Il n'y a aucune fonction à partir de cette réponse, bien que la fonctionnalité ait été demandée .
L'équivalent le plus proche est mentionné dans votre question.
WITH tmp AS (
SELECT 'hey' AS str1
UNION ALL
SELECT ' there'
)
SELECT array_join(array_agg(str1), ',', '') AS joined
FROM tmp