SQL: 将两个 to-from(定向)列交换为两个单向列
SQL: swap two to-from (directional) columns into two unidirectional columns
我正在处理一些与图形相关的数据,这些数据具有定向节点。这是初始模拟数据。
但是,我试图将其分析为单向路径。这意味着我将以某种方式需要将 node1 的某些行与 node2 交换以进行分组。如下所示。
有人知道如何为此编写 SQL 查询吗?谢谢!
这里是逗号分隔的模拟初始数据。
id,node1,node2,count
1,A,B,10
2,B,A,20
3,C,B,30
4,C,A,30
5,A,C,20
6,B,C,10
您显然希望较小的值为 node1。这可以使用 least()
和 greatest()
函数来完成:
select id,
least(node1, node2) as node1,
greatest(node1, node2) as node2,
"count"
from the_table;
我正在处理一些与图形相关的数据,这些数据具有定向节点。这是初始模拟数据。
但是,我试图将其分析为单向路径。这意味着我将以某种方式需要将 node1 的某些行与 node2 交换以进行分组。如下所示。
有人知道如何为此编写 SQL 查询吗?谢谢!
这里是逗号分隔的模拟初始数据。
id,node1,node2,count
1,A,B,10
2,B,A,20
3,C,B,30
4,C,A,30
5,A,C,20
6,B,C,10
您显然希望较小的值为 node1。这可以使用 least()
和 greatest()
函数来完成:
select id,
least(node1, node2) as node1,
greatest(node1, node2) as node2,
"count"
from the_table;