下面的表transactions
记录了交易的卖家和买家的ID,我想确定参与交易次数最多的用户以及该用户参与的交易次数。
所需输出如下:
因为用户2总共有3笔交易(1笔作为卖方,2笔作为买方),用户4也有3笔交易(2笔作为卖方,1笔作为买方)。可以假设一个用户不可能是同一交易中的买方和卖方,并且每个买方-卖方组合不是重复的。
什么SQL查询会让我得到这个?我在网上找不到任何类似的问题。提前道谢!
您可以取消透视、聚合和使用窗口函数:
select id, cnt
from (select id, count(*) as cnt,
rank() over (order by count(*) desc) as seqnum
from ((select seller_id as id, date from t) union all
(select buyer_id, date from t)
) i
group by id
) i
where seqnum = 1;