如何使用一个选择查询在买卖双方之间进行交流

时间:2018-07-14 14:22:47

标签: sql

我有一个如下交易表:

enter image description here

我想获得买卖双方之间的交换数量。

查询的输出应如下所示

output

1 个答案:

答案 0 :(得分:0)

大多数数据库支持least()greatest()函数:

select least(seller, buyer), greatest(seller, buyer), count(*)
from t
group by least(seller, buyer), greatest(seller, buyer);

在没有的数据库中,还有其他方法。一个使用case表达式。另一个union all

select seller, buyer, count(*)
from ((select seller, buyer
       from t
       where seller < buyer
      ) union all
      (select buyer, seller
       from t
       where seller > buyer
      )
     ) sb
group by seller, buyer;