我有一张简单的桌子

CREATE TABLE aaa AS
(
  ogid integer NOT NULL,
  ocolor character varying(80) NOT NULL,
  vgid integer NOT NULL,
  vcolor character varying(80) NOT NULL,
)

aa包含一些值,如本例中所示
Ogid OColor Vgid VColor
1   v       1   v
1   v       5   r
1   v       8   g
2   r       5   r
3   g       7   r
4   g       5   r
5   r       7   r
5   r       9   g
6   g       6   g

我需要计算每对(OColor,VColor)组合在一起的simmetric对(例如g-r和r-g的元素组合在一起)中的元素数。
我需要一个类似的结果:
OColor Vcolor nelement
b      b      10
b      g      16
g      v      2

最佳答案

如果我理解正确,您可以使用least()greatest()

select least(ocolor, vcolor), greatest(ocolor, vcolor), count(*)
from table t
group by least(ocolor, vcolor), greatest(ocolor, vcolor);

但是,您的问题令人困惑,因为结果似乎与示例数据无关。

10-07 19:38