Вывод найденных элементов в 2 столбца - MySQL

Узнай цену своей работы

Формулировка задачи:

Есть 3 столбца в таблице : Дата, IP, Сайт Нужно сортировав по дате, найти 2 сайта (например %vk.com% и %google.com%) и выписать количество в 2 разных столбца , при этом не считать одинаковые IP. Пример:
 
___Date_____VK__Google
2016-08-10___3____6
2016-08-14___2____2
Вот мой код :
SELECT DISTINCT
    date AS Date,
    COUNT(DISTINCT ip_address) AS Vk
FROM
    visits
WHERE
    site LIKE '%vk.com%'
GROUP BY date
Но надо как-то добавить 3 столбик с Google, пытался как-то добавить еще 1 "site like '%google.com%', но ничего не вышло. Подскажите

Решение задачи: «Вывод найденных элементов в 2 столбца»

textual
Листинг программы
SELECT DISTINCT
    date AS Date,
    COUNT(DISTINCT case when site LIKE '%vk.com%' then ip_address end) AS Vk
    COUNT(DISTINCT case when site LIKE '%google.com%' then ip_address end) AS google
FROM
    visits
WHERE
    site LIKE '%vk.com%'
 or site LIKE '%google.com%'
GROUP BY date

Объяснение кода листинга программы

  1. SELECT DISTINCT - выбранные строки будут уникальными по дате
  2. date AS Date - указание имени столбца, в данном случае дата
  3. COUNT(DISTINCT case when site LIKE '%vk.com%' then ip_address end) AS Vk - подсчет уникальных IP-адресов для сайта vk.com
  4. COUNT(DISTINCT case when site LIKE '%google.com%' then ip_address end) AS google - подсчет уникальных IP-адресов для сайта google.com
  5. FROM visits - указание таблицы, из которой нужно выбрать данные
  6. WHERE site LIKE '%vk.com%' OR site LIKE '%google.com%' - указание условий для выборки данных (сайт должен быть vk.com или google.com)
  7. GROUP BY date - группировка данных по дате

Оцени полезность:

5   голосов , оценка 3 из 5
Похожие ответы