我正在尝试从交互表中生成更易于解析的图表:
这 相互作用
from | to | weight
1 | 2 | 3
2 | 1 | 2
3 | 1 | 4
1 | 4 | 2
2 | 4 | 4
2 | 3 | 5
3 | 2 | 1
要 相互作用
from | to | average weight
1 | 2 | 2.5
1 | 3 | 4
1 | 4 | 2
2 | 4 | 4
2 | 3 | 3
答案 0 :(得分:4)
这里的技巧是将您拥有的方向信息转换为非定向信息。让我们判断出“side1”节点总是较小的一个而“side2”总是更大(注意我故意不称它们为“to”和“from”,因为这意味着方向性)。可以使用LEAST
和GREATEST
来实现此逻辑。一旦实现了这一点,在分组查询中使用AVG
就是一件简单的事情:
SELECT side1, side2, AVG(weight)
FROM (SELECT LEAST(to, from) AS side1, GREATEST(to, from) AS side2, weight
FROM my_table)
GROUP BY side1, side2