У меня есть эта таблица:
CREATE TABLE IF NOT EXISTS `catalog_sites` (
`id` int(10) unsigned NOT NULL auto_increment,
`cat_id` int(10) unsigned NOT NULL,
`date` datetime NOT NULL,
`url` varchar(255) NOT NULL,
`title` varchar(255) NOT NULL,
`description` varchar(255) NOT NULL,
`keywords` varchar(255) NOT NULL,
`visited` int(10) unsigned NOT NULL,
`shown` int(10) unsigned NOT NULL,
`meta_try` int(1) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `url` (`url`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
Я думаю, что моя проблема проста, но, кажется, не могу найти подходящее решение ..
Итак, это таблица с веб-сайтами, я хотел бы получить 6 сайтов в 6 различных категориях (cat_id, всего: 36 строк) с наивысшим рейтингом для каждой категории. Рейтинг рассчитывается как visited
/ shown
.
Я должен получить 36 строк, содержащих 6 верхних категорий (их можно найти, отсортировав по AVG(visited / shown)
), и 6 лучших сайтов в каждой из этих 6 категорий.
Если у вас есть идеи, как это может произойти по-другому, скажите, пожалуйста.