Сумма SQL-запроса и его противоположности не соответствует общему количеству - PullRequest
0 голосов
/ 11 февраля 2019

Сумма следующих 2 запросов дает мне 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 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%")

Однакопоскольку они должны быть противоположными и дополняющими, они должны дать мне 39 206, что является результатом этого запроса:

Запрос 3 (всего запроса):

SELECT COUNT(DISTINCT SIREN) AS new_column FROM CDEdelux
WHERE Email IS NOT NULL
AND Email <> ""
AND Email <> " "
AND Email <> ''
AND Email <> ' '

Почемупервое число выше второго?

1 Ответ

0 голосов
/ 11 февраля 2019

Ну, очевидно, что данный SIREN может иметь несколько электронных писем, которые соответствуют любому набору условий.Вы можете увидеть дубликаты электронных писем, выполнив:

select distinct siren, email
from CDEdelux d1
where exists (select 1 from CDEdelux d2 where d2.siren = d.siren and d2.email <> d.email);

Если вы посчитали разные email с, то цифры должны сложиться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...