我有一张桌子。
Name count1 Name2 count2
A 1 B 2
B 2 c 4
A 5 C 7
名称具有count1值, Name2 具有count2值。
我需要以下结果
a -> 6 col[0][0] + c[2][0]
b-> 4 col[0][3] + c[1][1]
c -> 11 col[1][3] + col[2][3]
说明:B
同时包含name和name1,因此我们需要为B
答案 0 :(得分:1)
您需要取消数据,然后进行汇总。这是一个简单的方法:
union all
更新版本的Postgres支持横向连接。如果您拥有大量数据,这些可以更有效,但select v.name, sum(v.cnt)
from t, lateral join
(values (t.name1, t.count1), (t.name2, t.count2)) v(name, cnt)
group by v.name;
也可以正常工作。
编辑:
横向连接非常相似:
node index.js