计算 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
我们可以在这里使用LEAST
和GREATEST
函数:
SELECT COUNT(*)
FROM (
SELECT DISTINCT LEAST(Caller, Receiver),
GREATEST(Caller, Receiver)
FROM yourTable
) t;
在上述逻辑中,A -> B
和B -> A
都将被视为A -> B
,并且只会被计算一次。
如何计算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
我们可以在这里使用LEAST
和GREATEST
函数:
SELECT COUNT(*)
FROM (
SELECT DISTINCT LEAST(Caller, Receiver),
GREATEST(Caller, Receiver)
FROM yourTable
) t;
在上述逻辑中,A -> B
和B -> A
都将被视为A -> B
,并且只会被计算一次。