SQL 中是否有某种“聚合”函数可以将值转换为列表?一个示例可能是以下形式的表格:
| game_id | player | score |
|---------|--------|-------|
| 1 | fred | 2 |
| 1 | tom | 1 |
| 2 | fred | 3 |
| 2 | tom | 4 |
我想要返回的是一个如下所示的表:
| player | scores |
|--------|--------|
| fred | 2, 3 |
| tom | 1, 4 |
该命令可能类似于:SELECT player, listify(score) FROM games GROUP BY player;
感谢蒂姆和戈登。我正在寻找的 Postgres 函数是array_agg
。本例中的完整查询如下所示:
SELECT player, array_to_string(array_agg(score), ',') AS scores FROM games GROUP BY player;
array_agg
将所有分数放入一个数组中,您必须将它们转换为字符串才能在 SELECT 语句中返回它们。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)