sql—如何在两列中聚合和分组?

uqdfh47h  于 2021-08-09  发布在  Java
关注(0)|答案(2)|浏览(394)
Name          age   gender
competition1      3      0
competition1      3      1
competition1      2      0
competition1      2      1
competition2      3      0
competition2      3      1
competition3      1      0

我想在下表中转换此表中的查询。

Name          Array of ages   Array of gender
'competition1',      {'3','2'}       {'0','1'}
'competition2',      {'3'}       {'0','1'}
'competition3',      {'1'}           {'0'}
bprjcwpo

bprjcwpo1#

你可以通过 name ,并使用 array_agg(distinct ...) 生成没有重复项的数组。请注意,还可以根据需要对数组中的值进行排序:

select 
    name, 
    array_agg(distinct age order by age desc) ages, 
    array_agg(distinct gender order by gender) genders
from mytable
group by name
0qx6xfy6

0qx6xfy62#

你可以使用array\u agg

SELECT name, array_agg(age), array_agg(gender)
 FROM data_table
 GROUP BY name

相关问题