willwin
Guest
Запрос с сортировкой по количеству совпадений
Всем привет!
Делал я как-то давно счётчик посещений с подробной статистикой. Там у меня каждое посещение логируется в базе данных, а статистика уже составляется на основе этих логов. Сейчас счётчик стал довольно активно использоваться, и статистика стала тормозить. Нужно оптимизировать запросы к БД. И вот главная проблема: я не знаю, как составить такой запрос, который достанет из таблицы все записи, удовлетворяющие определённому критерию И сразу сгруппирует их по количеству строк, в которых какой-то столбец имеет какое-то определённое одинаковое значние и вернёт мне количество этих самых строк. До этого я сначала запрашивал просто все записи, у которых разное поле, например, referer_ip (использовал GROUP BY referer_ip), а потом в цикле для каждой полученной записи вычислял, сколько раз встречаеются строки с таким referer_ip. Потом ещё отдельно сортировал это, сохранив всё в массив. В результате сейчас всё жутко тормозит Надеюсь, понятно объяснил. Буду благодарен за любую помощь.
Всем привет!
Делал я как-то давно счётчик посещений с подробной статистикой. Там у меня каждое посещение логируется в базе данных, а статистика уже составляется на основе этих логов. Сейчас счётчик стал довольно активно использоваться, и статистика стала тормозить. Нужно оптимизировать запросы к БД. И вот главная проблема: я не знаю, как составить такой запрос, который достанет из таблицы все записи, удовлетворяющие определённому критерию И сразу сгруппирует их по количеству строк, в которых какой-то столбец имеет какое-то определённое одинаковое значние и вернёт мне количество этих самых строк. До этого я сначала запрашивал просто все записи, у которых разное поле, например, referer_ip (использовал GROUP BY referer_ip), а потом в цикле для каждой полученной записи вычислял, сколько раз встречаеются строки с таким referer_ip. Потом ещё отдельно сортировал это, сохранив всё в массив. В результате сейчас всё жутко тормозит Надеюсь, понятно объяснил. Буду благодарен за любую помощь.