计算 SQL 中正在进行的对话数

Count number of ongoing conversations in SQL

如何计算table中不同对话的数量?

table:

Caller Receiver
A B
B D
C A
A C
C B
D B
B A
B D

在上面的table中,对话是在 A:B, A:C, B:C, B:D.

因此,预期结果为4

我们可以在这里使用LEASTGREATEST函数:

SELECT COUNT(*)
FROM (
    SELECT DISTINCT LEAST(Caller, Receiver),
                    GREATEST(Caller, Receiver)
    FROM yourTable
) t;

在上述逻辑中,A -> BB -> A都将被视为A -> B,并且只会被计算一次。