Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Максимальное значение отношения суммы просмотров фотографий одного автора / количество фотографий одного автора
 
 автор: vadimka   (08.10.2011 в 19:56)   письмо автору
 
 

Здравствуйте!
имеется таблица:

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
";

конечно это бред, но не знаю как сделать

  Ответить  
 
 автор: cheops   (08.10.2011 в 20:14)   письмо автору
 
   для: vadimka   (08.10.2011 в 19:56)
 

Не следует использовать MAX() во вложенном запросе, вам там нужна сумма SUM(), MAX() нужно применять к отношению MAX(v / c) во внешнем запросе.

  Ответить  
 
 автор: vadimka   (09.10.2011 в 00:20)   письмо автору
 
   для: 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

спасибо!

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования