Доброго времени суток!
Собственно сабж.
Поделитесь мыслями, как лучше построить запрос, чтобы он делал выборку из таблицы базы с критерием top100, top10 и т.д. по количеству повторяющихся записей в определенном столбце таблицы...
На нечеткий вопрос можно дать только общий ответ - используйте group by, order, limit
>На нечеткий вопрос можно дать только общий ответ - используйте group by,
>order, limitХорошо, тогда конкретней так:
Парсятся логи сквида в табличку mysql.
К примеру есть пользователь Вася с ip-адресом 1.2.3.4, который скачал 150 метров и у меня это вызвало интерес. Как мне правильно сформировать такой запрос, чтобы узнать к примеру 10 самых посещаемых им сайтов, и 10 сайтов с которых он больше всего скачал информации.mysql> describe logs;
+--------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------+--------------+------+-----+---------+-------+
| ip | varchar(20) | YES | | NULL | |
| date | date | YES | | NULL | |
| time | time | YES | | NULL | |
| method | varchar(50) | YES | | NULL | |
| url | varchar(255) | YES | | NULL | |
| type | varchar(50) | YES | | NULL | |
| size | bigint(20) | YES | | NULL | |
+--------+--------------+------+-----+---------+-------+
Ну например так
select url, count(url) from logs where ip='1.2.3.4' group by url order by 2 DESC limit 10
select url, sum(size) from logs where ip='1.2.3.4' group by url order by 2 DESC limit 10