MySQL Left Join скинул мои цифры - PullRequest
0 голосов
/ 27 февраля 2019

Я делаю левое соединение на столе, чтобы узнать количество сгенерированных нами потенциальных клиентов и сколько раз мы их вызывали.Я подумал, что лучше сделать левое соединение, поэтому я написал следующий запрос:

SELECT 
    COUNT(rad.phone_number) as lead_number, rals.lead_source_name as source, COUNT(racl.phone_number) as calls, SUM(case when racl.contacted = 1 then 1 else 0 end) as contacted
FROM reporting_app_data rad 
LEFT JOIN reporting_app_call_logs racl ON rad.phone_number = racl.phone_number, reporting_app_lead_sources rals
WHERE DATE(rad.created_at) = CURDATE() AND rals.list_id = rad.lead_source
GROUP BY rad.lead_source;

Но проблема в том, что если в таблице reporting_app_call_logs естьнесколько записей для одного и того же телефонного номера (таким образом, телефонный номер был вызван несколько раз в этот день), номер_сведения (который я хочу посчитать, сколько запросов было сгенерировано в текущий день, сгруппированных по источнику), равно количеству вызовов.Таким образом, количество в таблице LEFT равно количеству в таблице RIGHT.

Как мне написать SQL-запрос, который получает количество потенциальных клиентов и общее количество вызовов на источник потенциальных клиентов?

1 Ответ

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

Попробуйте COUNT(DISTINCT expression)

Другими словами, измените COUNT(rad.phone_number) на COUNT(DISTINCT rad.phone_number)

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