web-dev-qa-db-ja.com

MySQL group_concatに相当するPresto

私は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機能を検索する場合。)

12
Mike Moyer

Prestoのgroup_concatの代わりにこれを使用してみてください::

select 
  a,
  array_join(array_agg(b), ',')
from table
group by a
15
Rahul Ahuja

また、一意の値(group_concat(distinct ... separator ', ')と同等)のみを探している場合は、これを試してください:

array_join(array_distinct(array_agg(...)), ', ')
7
Jacob Rose

この答えの機能はありません 機能が要求されていますが

最も近いものが質問に記載されています。

WITH tmp AS (
SELECT 'hey' AS str1
UNION ALL
SELECT ' there'
)
SELECT array_join(array_agg(str1), ',', '') AS joined
FROM tmp
4
duber