【发布时间】:2019-08-10 17:47:53
【问题描述】:
我在 Postgres 中有下表
| phone | group | spec |
| 1 | 1 | 'Lock' |
| 1 | 2 | 'Full' |
| 1 | 3 | 'Face' |
| 2 | 1 | 'Lock' |
| 2 | 3 | 'Face' |
| 3 | 2 | 'Scan' |
试过了
SELECT phone, string_agg(spec, ', ')
FROM mytable
GROUP BY phone;
对于缺少组的空字符串的每个电话都需要此输出。
| phone | spec
| 1 | Lock, Full, Face
| 2 | Lock, '' , Face
| 3 | '', Scan ,''
【问题讨论】:
-
为什么列表中有 3 个成员代表 4 个不同的值?
-
因为有三个不同的组,电话 2 没有组 '2' 值,电话 3 没有组 '1' 和 '3'
标签: sql postgresql string-aggregation