Соединение двух отдельных столбцов при использовании count () - PullRequest
0 голосов
/ 18 августа 2011

Все еще изучаю MySQL, так что терпите меня.

Итак, у меня есть две таблицы: приводит, что:

id  dat          in_click_id 
55  2011-08-15      400 
10  2011-08-13      400
34  2011-08-13      420 
50  2011-08-12      420   
15  2011-08-14      425

Вторая таблица называется in_clicks:

id    location    keyword
400     KS         word1  
410     CO         word2
415     LA         word2
420     CA         word2
425     FL         word3

Итак, я пытаюсь выяснить, была ли ссылка связана с кликом. Другими словами, я пытаюсь получить следующее:

keyword     count(keyword)
word1        15
...          ...

Так что ключевым словом будет слово, а второй столбец будет суммарное количество лидов по этому ключевому слову.

Поскольку данные находятся в двух отдельных таблицах, мне нужно использовать команду соединения, но У меня возникли проблемы с его реализацией.

Вот одна из моих многочисленных попыток, которая, очевидно, не работает.

SELECT id, discriminator, create_date, in_click_id, COUNT(in_click_id) 
FROM leads 
WHERE create_date LIKE '%2011-08-17%' 
ORDER BY COUNT(in_click_id) DESC 
INNER JOIN in_click ON leads.in_click_id = in_clicks.id;

Помощь!

Ответы [ 3 ]

4 голосов
/ 18 августа 2011

Вам нужно использовать GROUP BY , например:

SELECT leads.id, COUNT(in_click_id) 
FROM leads 
INNER JOIN in_click ON leads.in_click_id = in_clicks.id
WHERE create_date LIKE '%2011-08-17%'
GROUP BY leads.id
ORDER BY COUNT(in_click_id) DESC
1 голос
/ 18 августа 2011

Вам необходимо использовать ключевое слово Group By:

SELECT in_clicks.keyword, COUNT(leads.in_click_id) 
FROM in_clicks  
INNER JOIN leads 
    ON leads.in_click_id = in_clicks.id
GROUP BY in_clicks.keyword
ORDER BY COUNT(leads.in_click_id)
1 голос
/ 18 августа 2011

Ваши предложения SQL неправильно упорядочены.Типичный запрос SQL имеет следующий формат

SELECT ...
FROM ...
    {joins}
WHERE ...
GROUP BY ...
HAVING ...
ORDER BY ...
LIMIT ...

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

SELECT c.keyword, count(l.id) 
FROM in_click c
    INNER JOIN leads l ON l.in_click_id = c.id   
GROUP BY c.keyword
ORDER BY COUNT(l.id) DESC 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...