статистика в sql

chama

Новичок
статистика в sql

как посчитать количество уникальных посетителей за неделю, если их уникальность определяется одним днём. Т.е. в базе есть два столбца ip и дата.

Количество уникальных посетителей за определённый день можно узнать следущим запросом:

SELECT DISTINCT ip FROM stat WHERE date='$date'

аа формула количества посетителей за неделю следующая: колич уник пос за понедельник + количество уникальных посетителей за вторник + ... + текущий день (дата) недели.
Подскажите как организовать данный цикл если я знаю текущую дату и дату на начало недели date = NOW() - interval WEEKDAY(NOW()) day (расчитываемая в sql)

-~{}~ 17.03.04 18:04:

Если проще говоря Мне надо сложить количество выводимых ответов в разные дни установив при этом диапазон(даты)
 

Falc

Новичок
chama
Вытащи нужные дни и подсчитай сумму в пыхе.

Нужные дни вытаскивай через
SELECT TO_DAYS(data_field) As day
....
GROUP BY day
 

ys

отодвинутый новичок
Плюс:
Если посещаемость большая, то лудше добавить поле, например count , типа int или bigint (в зависимости от посещаемости) с NOT NULL DEFAULT 1 .

И на моменте занесения проверять, если есть такой ip в этот день, то просто count=count+1 для этого ip.

Это даст:

1. уменьшение кол-ва записей в таблице.
2. Вместо DISTINCT ip можно просто будет запрашивать count(*) аз указанный период.
 

chama

Новичок
Спасибо.
Я вытащил нужные дни и подсчитал сумму.
Т.Е. В цикле создавал дату увеличивая день пока не наступал нужный день и считал общую сумму посещений.
 

Falc

Новичок
chama
>>Т.Е. В цикле создавал дату увеличивая день пока не наступал нужный день и считал общую сумму посещений.
Т.е. для каждого дня свой sql-запрос?
 

Falc

Новичок
chama
И это после того как я написал как сделать одним запросом :)
 

chama

Новичок
Нет просто я это сделал перед тем как посмотрел что ты написал.
Инета не было.
Щас попробую исправить.

-~{}~ 18.03.04 14:48:

а что должно быть указанно в TO_DAYS(data_field) ведь TO_DAYS возвращает количество дней, прошедших с года 0
а мне нужен диапазон дат.
 

Falc

Новичок
chama
Зачем тебе диапазон дат?
тебе надо сгрупировать по дням, это делается так как я написал выше.
 

chama

Новичок
к примеру SELECT TO_DAYS(data) As day FROM stat GROUP BY day выводит ошибку
 

Falc

Новичок
chama
Конечно выдает.
WHERE GROUP BY ???

-~{}~ 18.03.04 13:34:

chama
Ты сначало определись какой запрос у тебя выдате ошибку и какую.
 

chama

Новичок
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /usr/local/apache/out/scripts/stat.php on line 409
 

Falc

Новичок
chama
слово date является служебным его лучше не использовать в качестве названия поля.
 

chama

Новичок
а что этот запрос должен вывести?

т.е. как обращаться к сгрупированным данным.
 
Сверху