как делать двойную группировку ?

  • Автор темы Автор темы kibi
  • Дата начала Дата начала

kibi

Новичок
как делать двойную группировку ?

Прошу помочь определиться с логикой..

База содержит даты в формате (‘yyyy-mm-dd’, ‘hh:mm:ss’,’ IP-adress’)

Необходимо сделать выборку по месяцам с группировкой по IP-adr.

Если я делаю просто

Select * count(*) as sumIP from base group by IP-adr
то получаю группировку по адресам…
но чтобы еще сделать группировку по месяцам?

Делать виртуальные таблицы и потом вторым запросом группировать по датам ?
 
В таком запросе нет никакой логики. Если ты сделаешь группировку по месяцам, то затрешь данные по IP адресам.
Так что определись для начала, что тебе надо.
 
Originally posted by Кром
В таком запросе нет никакой логики. Если ты сделаешь группировку по месяцам, то затрешь данные по IP адресам.
Так что определись для начала, что тебе надо.
Логика такая, что надо сделать двойную выборку, т.е.
1. Разбить по месяцам...
2. В каждом месяце разбить по IP-адресам..

не получится одним запросом..?
не могу придумать.
 
Понятно. Запрос будет выглядеть так:

по дням:
select distinct `Time`,`Ip`, count(*) AS UniqIp from `Table` group by 'Time', `Ip`

по месяцам:
select distinct date_format(`Time`,'%Y-%m') as `GroupMonths`,`Ip`, count(*) AS UniqIp from `Table` group by `GroupMonths`, `Ip`
 
Сверху