|
|
|
| В таблице регистрируется юникс-время прихода посетителя извне на какую-либо страницу сайта и IP адрес этого посетителя.
Посетителя будем считать новым, если он не приходил из вне в течение 24 часов до момента его текущего прихода (т.е. в таблице нет записи с этим IP ближе 86400).
При этом уникальным будем считать посетителей, чьи IP адреса в течение сегодняшнего дня не повторяются.
Как подсчитать уникальных посетителей за сегодня, вычленив из них новых? | |
|
|
|
|
|
|
|
для: Владимир55
(01.03.2009 в 21:39)
| | сразу можно привести пример данных таблицы, указав строки новых. | |
|
|
|
|
|
|
|
для: 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, то это новый посетитель. | |
|
|
|
|
|
|
|
для: Владимир55
(01.03.2009 в 22:13)
| | А если две записи 77.106.230.12 имеют метки 1235854808 и ... 1235854800 - то он уже не новый чтоли? | |
|
|
|
|
|
|
|
для: 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
|
собственно это лишь пример, что задачу можно решить.
На самом деле с такой организацией данных на реальной выборке запрос будет выполняться мучительно медленно, я полагаю. | |
|
|
|
|
|
|
|
для: Trianon
(01.03.2009 в 22:17)
| | Этот не новый, ибо интервал между записями всего 8 секунд. Такое случается, если человек повторно вызвал сайт из избранного, или еще раз кликнул по внешней ссылке, которая его сюда привела. | |
|
|
|