从表中的对值中获取计数

ajm*_*d04 5 sql oracle oracle11g

count_temp表

将上面作为样本表的输出,我需要一个sql查询,结果"2"作为表中的计数.

我已经尝试了最初的4列发送,并且没关系; 但是更多的行显示不正确的o/p.给出了我的旧代码

SELECT COUNT(*)/2
     FROM 
     (SELECT sentby,sentto
     FROM
          (SELECT DISTINCT sentby, sentto FROM count_temp)
     WHERE sentto IN
          (SELECT DISTINCT sentby FROM count_temp )
      AND sentby IN
          (SELECT DISTINCT sentto FROM count_temp )
     ) ;
Run Code Online (Sandbox Code Playgroud)

在此先感谢:)并赞赏.

dan*_*era 1

您的查询:

with cte as (
select distinct m1.sentby , m1.sentto
from m m1 
inner join m m2
   on m1.sentby = m2.sentto and
      m2.sentby = m1.sentto 
)
select count(*)/2 from cte;
Run Code Online (Sandbox Code Playgroud)

在 sqlfiddle 上测试它

另外,简化:

select count( distinct m1.sentby ) / 2
from m m1 
inner join m m2
   on m1.sentby = m2.sentto and
      m2.sentby = m1.sentto 
Run Code Online (Sandbox Code Playgroud)