SQL查询及其对立面的总和和总计数不匹配
以下两个查询的总和产生42 081: 问题1:SQL查询及其对立面的总和和总计数不匹配,sql,sqlite,Sql,Sqlite,以下两个查询的总和产生42 081: 问题1: SELECT COUNT(DISTINCT SIREN) AS new_column FROM CDEdelux WHERE Email IS NOT NULL AND Email <> "" AND Email <> " " AND Email <> '' AND Email <> ' ' AND Email LIKE "%@%.%" AND Email NOT LIKE "_@%.%" AND E
SELECT COUNT(DISTINCT SIREN) AS new_column FROM CDEdelux
WHERE Email IS NOT NULL
AND Email <> ""
AND Email <> " "
AND Email <> ''
AND Email <> ' '
AND Email LIKE "%@%.%"
AND Email NOT LIKE "_@%.%"
AND Email NOT LIKE "%bpi%"
AND Email NOT LIKE "%BPI%"
AND Email NOT LIKE "%inconnu%"
AND Email NOT LIKE "%tempo%"
AND Email NOT LIKE "%attente%"
AND Email NOT LIKE "%xx%"
AND Email NOT LIKE "%nsp%"
AND Email NOT LIKE "%contact%"
AND Email NOT LIKE "%info%"
AND Email NOT LIKE "%recuperer%"
查询2对方查询:
SELECT COUNT(DISTINCT SIREN) AS new_column FROM CDEdelux
WHERE Email IS NOT NULL
AND Email <> ""
AND Email <> " "
AND Email <> ''
AND Email <> ' '
AND (Email NOT LIKE "%@%.%"
OR Email LIKE "_@%.%"
OR Email LIKE "%bpi%"
OR Email LIKE "%BPI%"
OR Email LIKE "%inconnu%"
OR Email LIKE "%tempo%"
OR Email LIKE "%attente%"
OR Email LIKE "%xx%"
OR Email LIKE "%nsp%"
OR Email LIKE "%contact%"
OR Email LIKE "%info%"
OR Email LIKE "%recuperer%")
然而,由于它们应该是相反的和互补的,它们应该给我39206,这是该查询的结果:
查询3总计查询:
SELECT COUNT(DISTINCT SIREN) AS new_column FROM CDEdelux
WHERE Email IS NOT NULL
AND Email <> ""
AND Email <> " "
AND Email <> ''
AND Email <> ' '
为什么第一个数字比第二个数字高?很明显,一个给定的警报可能有多封符合任何一组条件的电子邮件。您可以通过执行以下操作查看重复的电子邮件:
select distinct siren, email
from CDEdelux d1
where exists (select 1 from CDEdelux d2 where d2.siren = d.siren and d2.email <> d.email);
如果你计算了不同的电子邮件,那么数字应该加起来。警报器可以有多封电子邮件吗?