IMHO.WS

IMHO.WS (http://www.imho.ws/index.php)
-   Веб-программирование (http://www.imho.ws/forumdisplay.php?f=29)
-   -   MySQL. Вопрос. (http://www.imho.ws/showthread.php?t=86838)

Trotil 02.06.2005 13:26

MySQL. Вопрос.
 
Постановка задачи.
Есть отношение "Книги". Среди всего прочего есть атрибут "Количество страниц". Требуется написать запрос (под MySQL), который возвращал бы наибольшее число книжек с одинаковым числом страниц.

Мой вариант:
SELECT MAX(kol) FROM
SELECT COUNT(id_Books) AS kol FROM A GROUP BY kol_stranic";

Причем подзапрос "SELECT COUNT(id_Books) AS kol FROM A GROUP BY kol_stranic" работает верно, а на запрос выше система выдает ошибку.

Как правильно?

Ghost 02.06.2005 13:33

Trotil
Попробуй запрос с COUNT отсортировать (ORDER BY) и указать пределы выборки (LIMIT):
Код:

SELECT COUNT(id_Books) AS kol FROM A GROUP BY kol_stranic ORDER BY 1 DESC LIMIT 0,1;

knight 03.06.2005 03:17

Исторически так сложилось что MySql не поддерживал подзапросы.Приходится например использовать LIMIT для решения данной проблемы

Trotil 03.06.2005 05:05

Цитата:

Сообщение от knight
Исторически так сложилось что MySql не поддерживал подзапросы.Приходится например использовать LIMIT для решения данной проблемы

Начиная с четвертой версии MySql поддерживает подзапросы. Например, такой запрос:
Код:

SELECT Id_Marshrut FROM
  marshrut  WHERE marshrut.passazhiropotok*marshrut.kol_reisov=(SELECT MAX(marshrut.passazhiropotok*marshrut.kol_reisov) AS max FROM
  marshrut)

у меня выполнился без проблем. (поиск маршрутов по MAX значению passazhiropotok*kol_reisov)

knight 08.06.2005 01:52

Спасибо большое. Я знаю я указал тот способ, который я обычно использовал.


Часовой пояс GMT +4, время: 20:14.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.