我有一个如下交易表:
我想获得买卖双方之间的交换数量。
查询的输出应如下所示
答案 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;