Athenaの裏側ではprestoが動いているようなのでprestoのドキュメントにあるarray_aggという集約関数を使って以下の様なクエリを実行することで配列で取得することが出来ます。
SELECT users.id, array_agg(documents.id) AS document_ids FROM users INNER JOIN documents ON documents.user_id = users.id GROUP BY users.id;
データ
users
id | name |
---|---|
1 | “Chadwick” |
2 | “Raman” |
3 | “Compton” |
4 | “Bohr” |
5 | “Lorentz” |
documents
id | user_id |
---|---|
1 | 1 |
2 | 1 |
3 | 1 |
4 | 2 |
5 | 2 |
6 | 3 |
7 | 4 |
結果
user_id | document_ids | |
---|---|---|
1 | 1 | [3, 2, 1] |
2 | 2 | [5, 4] |
3 | 4 | [7] |
4 | 3 | [6] |