By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0.
CREATE TABLE Messages(date DATE, senderid int, receiverid int)
INSERT INTO Messages(date, senderid, receiverid) VALUES
('2021-01-01', 1, 2),
('2021-01-02', 1, 3),
('2021-01-03', 1, 2),
('2021-01-04', 2, 1),
('2021-01-05', 2, 3),
('2021-01-06', 3, 2);
Records: 6 Duplicates: 0 Warnings: 0
SELECT COUNT(DISTINCT LEAST(m1.senderid, m1.receiverid), GREATEST(m1.senderid, m1.receiverid)) counter
FROM Messages m1
WHERE EXISTS (SELECT 1 FROM Messages m2 WHERE (m2.receiverid, m2.senderid) = (m1.senderid, m1.receiverid))
counter |
---|
2 |