SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 28.04.2011 13:37:47

LedVisiel
Участник
Зарегистрирован: 28.04.2011
Сообщений: 1

Подсчет уникальных IP

Доброе время суток. Не знаю с какой стороны подойти к выборке.
в таблице имеем поля date, ip, tag. в нее пишутся ип пользователей с целью последующего определения количества уникальных посетителей и неуникальных, сгруппированных по date и tag. tag - это нечто типа рефера. для этого я выполняю такой запрос:

SELECT `tag`, COUNT(DISTINCT ip) AS uniques, (COUNT(*) - COUNT(DISTINCT ip)) AS raws, `date` FROM `tablename` GROUP BY `tag`, `date`



если взять такой набор данных (откину пока date чтобы не загромождать визуально):

+-------------+-------------+
|     ip      |     tag     |
+-------------+-------------+
| 11.11.11.11 |       1     |
+-------------+-------------+
| 11.11.11.11 |       1     |
+-------------+-------------+
| 11.11.11.11 |       2     |
+-------------+-------------+
| 11.11.11.11 |       2     |
+-------------+-------------+



то в результате такого запроса мы получим:

+------+-------+-----+
| raws |uniques| tag |
+------+-------+-----+
|   1  |   1   |  1  |
+------+-------+-----+
|   1  |   1   |  2  |
+------+-------+-----+



это и логично, ведь внутри группы ip будет уникальным как минимум 1 раз.
но концепция требует, чтобы было так:

+------+-------+-----+
| raws |uniques| tag |
+------+-------+-----+
|   1  |   1   |  1  |
+------+-------+-----+
|   2  |   0   |  2  |
+------+-------+-----+



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

Неактивен

 

#2 28.04.2011 21:06:48

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Подсчет уникальных IP

Странная у Вас концепция sad

Можете делать COUNT от какого-то выражения над словами. Например,
COUNT(CONCAT(ip,tag)). Индекс такой запрос не сможет использовать
никакой.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson