Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как оценить новизну аудитории сайта?
 
 автор: Владимир55   (01.03.2009 в 21:39)   письмо автору
 
 

В таблице регистрируется юникс-время прихода посетителя извне на какую-либо страницу сайта и IP адрес этого посетителя.

Посетителя будем считать новым, если он не приходил из вне в течение 24 часов до момента его текущего прихода (т.е. в таблице нет записи с этим IP ближе 86400).
При этом уникальным будем считать посетителей, чьи IP адреса в течение сегодняшнего дня не повторяются.

Как подсчитать уникальных посетителей за сегодня, вычленив из них новых?

  Ответить  
 
 автор: Trianon   (01.03.2009 в 21:43)   письмо автору
 
   для: Владимир55   (01.03.2009 в 21:39)
 

сразу можно привести пример данных таблицы, указав строки новых.

  Ответить  
 
 автор: Владимир55   (01.03.2009 в 22:13)   письмо автору
 
   для: Trianon   (01.03.2009 в 21:43)
 

Пример данных
id     time     ip 
13592    1235854808    77.106.230.12
13593    1235854813    77.88.40.210
13594    1235854814    217.118.91.112
13595    1235854834    93.85.42.50
13596    1235854838    195.189.142.232
13597    1235854858    217.10.38.185
13598    1235854889    62.183.7.197
13599    1235854890    81.200.24.145
13600    1235854892    213.79.108.2
13601    1235854893    87.252.227.50
13602    1235854895    88.147.222.147
13603    1235854922    93.185.182.16
13604    1235854939    84.196.32.56
13605    1235854942    93.116.90.42
13606    1235854983    85.141.66.239
13607    1235854994    82.209.204.131
13608    1235854999    87.117.163.1
13609    1235855005    213.79.3.9
13610    1235855011    95.52.38.47
13611    1235855022    94.41.27.254
13612    1235855028    85.140.191.180
13613    1235855038    91.203.96.26
13614    1235855045    91.203.96.22
13615    1235855104    94.143.40.42
13616    1235855129    78.106.241.40
13617    1235855129    89.19.170.17
13618    1235855153    87.117.163.1
13619    1235855156    81.25.53.36
13620    1235855165    79.120.40.67
13621    1235855171    87.228.42.118
13622    1235855175    77.94.197.69
13623    1235855201    89.208.65.21
13624    1235855220    87.237.139.6
13625    1235855228    62.183.115.137
13626    1235855252    85.172.52.233
13627    1235855269    77.88.40.209
13628    1235855269    95.116.69.190
13629    1235855275    78.85.124.128
13630    1235855289    87.245.133.111
13631    1235855302    195.189.142.148
13632    1235855308    212.205.192.217
13633    1235855317    94.246.126.51
13634    1235855320    83.167.100.97
13635    1235855324    217.118.82.50
13636    1235855345    213.147.215.92


А какой из них новый, без вычислений определить невозможно.

К примеру, в строке 13592 зарегистрировн приход посетителя с адреса 77.106.230.12 в момент времени 1235854808. Если этого адреса нет в таблице в диапазоне от (1235854808 - 86400) до 1235854808, то это новый посетитель.

  Ответить  
 
 автор: Trianon   (01.03.2009 в 22:17)   письмо автору
 
   для: Владимир55   (01.03.2009 в 22:13)
 

А если две записи 77.106.230.12 имеют метки 1235854808 и ... 1235854800 - то он уже не новый чтоли?

  Ответить  
 
 автор: Trianon   (01.03.2009 в 22:29)   письмо автору
 
   для: Trianon   (01.03.2009 в 22:17)
 

SELECT new, count(new)
FROM(
SELECT s1.ip AS cl, COUNT(t2.ip) AS cnt, (SUM(t2.time >  mtm -86400) > 1) AS new FROM 
    (SELECT ip, MAX(time) AS mtm FROM tbl GROUP BY ip) AS s1
  JOIN tbl t2 ON s1.ip=t2.ip 
GROUP BY cl
  )AS s0
GROUP BY new



new count(new)
 0    39
 1     3


собственно это лишь пример, что задачу можно решить.
На самом деле с такой организацией данных на реальной выборке запрос будет выполняться мучительно медленно, я полагаю.

  Ответить  
 
 автор: Владимир55   (01.03.2009 в 22:34)   письмо автору
 
   для: Trianon   (01.03.2009 в 22:17)
 

Этот не новый, ибо интервал между записями всего 8 секунд. Такое случается, если человек повторно вызвал сайт из избранного, или еще раз кликнул по внешней ссылке, которая его сюда привела.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования