|
|
|
| Подскажите, как найти в таблице строку с макс значением одного или нескольких парамеиров? Есть ли такой запрос? | |
|
|
|
|
|
|
|
для: and200
(29.08.2007 в 08:56)
| |
SELECT MAX(field) FROM table
|
| |
|
|
|
|
|
|
|
для: Faraon
(29.08.2007 в 09:02)
| | В вопросе спрашивалось про строку | |
|
|
|
|
|
|
|
для: and200
(29.08.2007 в 08:56)
| | а что значит "макс значением нескольких параметров"? | |
|
|
|
|
|
|
|
для: Loki
(29.08.2007 в 10:54)
| | Предположим в таблице есть х и у. Надо найти строку, где и х и у максимальны олновременно. | |
|
|
|
|
|
|
|
для: And200
(30.08.2007 в 09:09)
| | Но мне надо сделать следующее. В таблице есть несколько одинаковых строк, которые отличаются только параметром Х. Мне надо найти ту строку, где Х - максимум. Меня интересует, можно ли это сделать сразу в запросе к таблице или нет. Потому, что это можно легко сделать сортировкой по возрастанию, но это замедляет работу, как Вы сами понимаете. | |
|
|
|
|
|
|
|
для: And200
(30.08.2007 в 09:16)
| | проиндексируйте эти поля и это не будет замедлять работу.
а если X - является максимальным, а Y максимален другой строке, то должен быть пустой результат? | |
|
|
|
|
|
|
|
для: Loki
(30.08.2007 в 12:34)
| | Спасибо!
1.Я правильно понял, что нет прямого запроса?
2.Что значит проиндексировать поля?
3.Конечно, если такой строки нет, то оезультат - нет строки.Это типа отличника: все пятерки - отличник, не все - свободен! | |
|
|
|
|
|
|
|
для: And200
(31.08.2007 в 07:57)
| | 1. да есть конечно. что-то типа:
SELECT * FROM table WHERE a=(SELECT max(a) FROM table) AND b=(SELECT max(b) FROM table)
|
2. создать индексы
3. см. п.1 | |
|
|
|