下面是我的桌子
p_no type name value
------------------------
1 A Tomy 1
1 A Nick 2
1 B Tomy 3
1 B Nick 4
1 C Tomy 5
1 C Nick 4
2 A Tomy 8
2 A Nick 7
2 B Tomy 5
2 B Nick 4
意思是每个人
p_no
表示一个块,该块记录了Pople在这两个方面的值
A, B, C
类型(可能是更多类型)。
我想选择一个对所有类型都有价值的人
鉴于
p_no=1, name=Tomy
A B C D
------------------
1 3 5 ..
我试过了
SELECT p_no, t[1] A, t[2] B/*, t[3] C.....*/
FROM (
SELECT p_no, ARRAY_AGG(type) FILTER (WHERE name='Tomy') t
FROM type
GROUP BY 1
ORDER BY 1) _unused
但它不能使数组_AGG()包含该值
我想我需要类似的东西
ARRAY_AGG('value' GROUP BY 'type')
这种查询可能吗?或者有更好的替代方案吗?