小编典典

sql“由...组成”将对应于同一对的行分组

sql

我有一个包含2列的表格-“主要”和“次要”。此外,还有其他列。以下是一组示例行:

id=1, primary=A, secondary=B, .....
id=2, primary=C, secondary=D, .....
....
.......
id=200, primary=B, secondary=A, .....
id=300, primary=J, secondary=D, .....

我需要一个“ GROUP BY”查询,该查询将对主要和次要值属于同一对值的所有行进行分组, 而与顺序无关 。因此,组应如下所示:

group=1, nodepair=BA, ....   // (primary=A && secondary=B) OR (primary=B && secondary=A)
group=2, nodepair=JM, ....   // (primary=J && secondary=M) OR (primary=M && secondary=J)

谢谢。


阅读 178

收藏
2021-04-22

共1个答案

小编典典

您是否正在寻找这样的东西?

select least(primary, secondary)
      ,greatest(primary, secondary)
 from yourtable
group 
   by least(primary, secondary)
     ,greatest(primary, secondary);

不论顺序如何,它将为您提供唯一/唯一的主要/次要组合一组,即{A,B}与{B,A}相同。

2021-04-22