![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вопрос по SQL [MySQL]
DmitryNekl © (2007-02-09 05:16:00)Здравствуйте, мастера!
У меня проблема такая. Собираю статистику посещения сайта. Есть таблица такой структуры:
id int(11)
user_ip varchar(15)
page varchar(255)
date_time datetime
referer varchar(255)
Хочу получить данные о числе хостов и хитов по страницам за определенный период. Сделал такой запрос:
SELECT `page`, count(distinct `user_ip`) as 'hosts', count(`id`) as 'hits' FROM `tbl_stat` WHERE DATE(`date_time`) >= '2007-01-25' and DATE(`date_time`) <= '2007-02-09' GROUP BY `page`
В результате выдается:
...
/articles.html?id=1 2 2
/articles.html?id=2 2 2
/articles.html?id=1 3 4
/articles.html?id=2 1 1
/articles.html?id=1 1 2
/articles.html?id=2 1 1
...
Никак не могу понять, откуда берутся эти повторения страниц и как сделать так, чтобы данные по страницам дейсвительно группировались, т.е. вместо шести вышеприведенных строчек были две:
/articles.html?id=1 6 8
/articles.html?id=2 4 4
Надеюсь на вашу помощь! Заранее спасибо!
Sergey13 (2007-02-09 10:48:00) [1]> [4] DmitryNekl (09.02.07 10:29)
Сделай двумя запросами. Все таки группировка подразумевает связанные данные (типа количество и сумма чего-то), а ты хочешь получить просто 2 несвязанных результата. Или я не очень въехал в условия.
DmitryNekl (2007-02-09 10:29:00) [2]Если убрать distinct, повторения пропадают.
Но зато появляется вопрос - а как сделать тогда то, что я хочу?
Sergey13 (2007-02-09 10:13:00) [3]А если вместо count(distinct `user_ip`) сделать просто count(`user_ip`) повторения останутся?
Я понимаю, что смысл будет другой, просто сомнения меня гложут насчет правомерности подобного действия, а проверять самому лень.
DmitryNekl (2007-02-09 10:00:00) [4]Хм... я непосредственно перед выполнением запроса его просматриваю - именно этот :(. А в чем еще может быть проблема?
ЮЮ (2007-02-09 05:44:00) [5]Согласно всем првилам SQL должен получаить именно то что хочешь. Единственое предположение, что выполняется вовсе не тот запрос, что ты привёл.