将两行合并为一行

时间:2012-04-25 19:42:25

标签: mysql sql

考虑下表。它描述了user1与user2开始对话的次数(“A与B开始对话,5次”):

user1  user2  count
-------------------
A      B      5
A      C      2
B      A      6
B      C      1
C      A      9
C      B      4

但是,我想在类似用户之间合并行。所以user1:A和user2:B与user1:B和user2:A相同,导致以下结果:

user1  user2  count
-------------------
A      B      11 (5 + 6)
A      C      11 (2 + 9)
B      C      5

我的第一个想法是将表选择为PHP,循环遍历它,添加行并将结果插入到新表中。但这似乎非常多余(而且速度很慢,因为该表包含数千条记录)。这也可以用(My)SQL吗?

1 个答案:

答案 0 :(得分:5)

SELECT LEAST(user1, user2), GREATEST(user1, user2), SUM(count) AS count
FROM yourtable
GROUP BY LEAST(user1, user2), GREATEST(user1, user2)