|
MySQL.RU - Webboard
Вернуться
Помогите создать сложный запрос (WebSQLNeeder) 15/07/2007 - 10:50:11
Re: Помогите создать сложный запрос (bac) 15/07/2007 - 14:28:16
Re: Помогите создать сложный запрос (WebSQLNeeder) 15/07/2007 - 15:19:03
Re: Помогите создать сложный запрос (Servekon) 16/07/2007 - 17:41:54
Re: Помогите создать сложный запрос (bac) 16/07/2007 - 22:29:51
Re: Помогите создать сложный запрос (xeim) 17/07/2007 - 07:28:21
> Original message text:
> From: WebSQLNeeder - 15/07/2007 - 10:50:11
> Subject:Помогите создать сложный запрос
> -----------------
> Значит есть таблица, в которую сохраняются айпи людей, которые кликнули по ссылке. Я сделал с помощью пхп за период "сегодня" и "вчера" выборку сколько уникальных айпи кликнуло. А от проблема как сделать то же самое скажем за неделю, за месяц и "всего"? Простое SELECT * не поможет так как оно выдаст все клики без определения повторяющихся притом повторяющиеся засчитываются если в разные дни были совершены ...
>
From: xeim - 17/07/2007 - 07:28:21
Subject:Помогите создать сложный запрос
-----------------
Статистику по уникальным ip адресам лушче собирать в отдельной таблице. Например такой:
CREATE TABLE `daily_stat`(
`date` date NOT NULL,
`ip` int(10) unsigned NOT NULL,
PRIMARY KEY (`date`,`ip`)
);
При клике на ссылку, выполняем следующий запрос:
REPLACE `daily_stat`
SET `daily_stat`.`date` = "2007-07-17",
`daily_stat`.`ip` = INET_ATON("127.0.0.1")
В качестве параметров подставляем текущую дату и ip-адрес клиента. При повторном обращении того же клиента в тот же день, новая запись в таблицу добавлена не будет! Таким образом собираем статистику только о уникальных ip адресах.
Теперь, как получить количество уникальных ip адресов на определенную дату (сегодня, вчера):
SELECT COUNT(*)
FROM `daily_stat`
WHERE `daily_stat`.`date` = "2007-07-17"
Как получить количество уникальных ip адресов за определенный диапазон времени (неделя, месяц):
SELECT COUNT(*)
FROM `daily_stat`
WHERE `daily_stat`.`date`
BETWEEN "2007-07-01" AND "2007-07-31"
Какие это дает преимущества? Такая схема будет работать при любой нагрузке на сайт с хорошей скоростью. К тому же если это единственная причина сбора статистики, позволит сильно съэкономить место в БД.
[Это сообщение - спам!]
Последние сообщения из форума
Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL,
версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
31879
|
|