Выборка количества уникальных значений с условием

Статус
В этой теме нельзя размещать новые ответы.

Горбушка

Ищу её...
Регистрация
2 Май 2008
Сообщения
3.444
Реакции
2.524
Код:
CREATE TABLE IF NOT EXISTS `visit` (
  `id` int(20) NOT NULL AUTO_INCREMENT,
  `page` int(3) NOT NULL,
  `sm` int(1) NOT NULL,
  `ip` varchar(15) NOT NULL,
  `date` int(8) NOT NULL,
  `time` int(20) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=8 ;
page - номер страницы
ip - ip пользователя
date - дата просмотра в формате 20140605
time - время просмотра в формате time()

Вопрос:
как 1 запросом выдрать количество уникальных просмотров по дням? Аналогично требуется выбрать не уникальные просмотры.
Т.е. нужно:
Страница 1 - 10 просмотров / 1 ip сегодня, 4 / 2 ip вчера
Страница 2 - 1 просмотр / 1 ip сегодня, 2 / 2 ip вчера
И т.д.

p.s. сервер xeon x4, нагрузка пофигу. Количество записей в сутки около 20-40 тысяч.
P.p.s. или ну его **х? Выбрать все значения за диапазон и пыхом считать?
 
Последнее редактирование:
Уники
SELECT COUNT(DISTINCT ip), date
FROM visit
GROUP BY date;

Все
SELECT COUNT(ip), date
FROM visit
GROUP BY date;
 
А сколько страниц? Условно 100 или условно миллион?

Уники
SELECT COUNT(DISTINCT ip), date
FROM visit
GROUP BY date;

Все
SELECT COUNT(ip), date
FROM visit
GROUP BY date;
У вас не учитываются уники на страницу.
 
Уникальные\не уникальные

select page, date, count(distinct ip)
from visit
group by page, date

select page, date, count(ip)
from visit
group by page, date
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху