我有两个SQL表,其中第二个表中的条件匹配两次,因此join使计数加倍。 一个是事件表,它捕获senderId,receiverId,statusId和bulkId。另一个表是“电话”表,该表捕获userId和phoneNumber。一个用户可以拥有多个电话,因此“电话”表中可以有一个用户多个条目。
我写一个类似的查询:-
SELECT
receiverId,
senderId,
ph.number,
SUM(CASE
WHEN e.statusId IN (40 , 41) THEN 1
ELSE 0
END) AS failed,
COUNT(e.statusId) AS total
FROM
Events e
JOIN
Phones ph ON ph.userId = e.senderId
WHERE
e.bulkId = 3;
不幸的是,以上查询将failed
和total
乘以电话号码计数,但我希望避免这种情况。