私はPrestoを初めて使い、MySQLのgroup_concat関数と同じ機能を取得したいと考えています。次の2つは同等ですか?そうでない場合、Prestoでgroup_concat機能を再作成する方法についての提案はありますか?
MySQL:
select
a,
group_concat(b separator ',')
from table
group by a
プレスト:
select
a,
array_join(array_agg(b), ',')
from table
group by a
(これは、Prestoの推奨される回避策として見つけました here group_concat機能を検索する場合。)
Prestoのgroup_concatの代わりにこれを使用してみてください::
select
a,
array_join(array_agg(b), ',')
from table
group by a
また、一意の値(group_concat(distinct ... separator ', ')
と同等)のみを探している場合は、これを試してください:
array_join(array_distinct(array_agg(...)), ', ')
この答えの機能はありません 機能が要求されていますが 。
最も近いものが質問に記載されています。
WITH tmp AS (
SELECT 'hey' AS str1
UNION ALL
SELECT ' there'
)
SELECT array_join(array_agg(str1), ',', '') AS joined
FROM tmp