gpt4 book ai didi

postgresql - 在 PostgreSQL 中合并相似的列

转载 作者:行者123 更新时间:2023-11-29 12:57:28 25 4
gpt4 key购买 nike

我正在使用 PostgreSQL。我有两个表,为了这个问题假设 me 有多个 ID。第一个表 Table1 处理发送的消息:

me | friends | messages_sent
----------------------------
0 1 10
0 2 7
0 3 7
0 4 6
1 1 5
1 2 12
...

第二个 Table2 处理收到的消息:

me | friends | messages_received
----------------------------
0 4 17
0 2 7
0 1 9
0 3 0
...

我怎样才能得到一张像这样的 table (尽管 friend 的顺序并不重要):

    me | friends | messages_total
----------------------------
0 1 19
0 2 14
0 3 7
0 4 23
...

我非常难过的部分是在 me 上加入两个表,然后添加一个 friend 的值,给 me 一个相等的值......想法?

最佳答案

您应该使用 mefriends 这两个字段连接两个表,然后简单地将收到和发送的消息相加。使用 FULL JOIN 可确保包括所有情况,例如我发送但没有从 friend 那里接收,反之亦然。

SELECT me, friends,
coalesce(messages_sent, 0) + coalesce(messages_received, 0) AS messages_total
FROM Table1
FULL JOIN Table2 USING (me, friends)
ORDER BY me;

关于postgresql - 在 PostgreSQL 中合并相似的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39501276/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com