LINUX.ORG.RU

[mysql] Выбрать уникальное значение

 


0

1

Есть 2 таблицы:

visitors:
visitor_id,visitor_ip, visit_date,country_id

countries:
country_id,country_name
Есть запрос для подсчета посетителей по месяцам:
   SELECT
    c.country_name,
     sum(CASE when t.`visit_date`<'2011-02-01' and t.visit_date>='2011-01-01' then 1 else 0 end) AS jan
,..
    sum(CASE when t.`visit_date`<'2011-01-01' and t.visit_date>='2011-12-01' then 1 else 0 end) AS 'dec'
FROM `countries` AS c
LEFT JOIN `visitors` AS t ON t.country_id = c.country_id
GROUP BY c.country_id

Возможно ли как то преобразовать запрос, чтобы он считал только уникальные visitor_ip для каждого country_id ?


Ответ на: комментарий от kote

все. решение найдено.

SELECT c.country_name, 
  COUNT(DISTINCT CASE when t.`visit_date`<'2011-02-01' and t.visit_date>='2011-01-01' then t.`visitor_ip` end) AS jan
FROM `countries` AS c
LEFT JOIN `visitors` AS t ON t.country_id = c.country_id
GROUP BY c.country_id

kote
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.