|
|
|
| Здравствуйте!
имеется таблица:
CREATE TABLE `gallery` (
`id` int(11) NOT NULL auto_increment,
`title` varchar(255) NOT NULL,
`author` int(11) NOT NULL,
`filename` varchar(255) NOT NULL,
`views` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=9 DEFAULT CHARSET=cp1251 AUTO_INCREMENT=9 ;
Получите максимальное значение отношения "сумма просмотров фотографий одного автора / количество фотографий одного автора".
я делаю так:
$query2 = "SELECT a.id, a.author, a.c, b.v
FROM
(SELECT id, author, COUNT(filename) as c FROM `gallery` GROUP BY author ) as a
JOIN
(SELECT id, MAX(views)as v FROM `gallery` GROUP BY author)as b
ON a.id = b.id
@d= a.c+b.v
ORDER BY @d DESC
LIMIT 1
";
|
конечно это бред, но не знаю как сделать | |
|
|
|
|
|
|
|
для: vadimka
(08.10.2011 в 19:56)
| | Не следует использовать MAX() во вложенном запросе, вам там нужна сумма SUM(), MAX() нужно применять к отношению MAX(v / c) во внешнем запросе. | |
|
|
|
|
|
|
|
для: cheops
(08.10.2011 в 20:14)
| | Фильм ужасов!!! но работает!
SELECT a.id, a.author, a.c, b.v, MAX(a.c+b.v)as sum
FROM
(SELECT id, author, COUNT(filename) as c FROM `gallery` GROUP BY author ) as a
JOIN
(SELECT id, SUM(views) as v FROM `gallery` GROUP BY author)as b
ON a.id = b.id
GROUP BY author
ORDER BY sum DESC
LIMIT 1
|
спасибо! | |
|
|
|