Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
Luciy Mortem Member Откуда: Сообщений: 18 |
Добрый день. Есть таблица t с полями a (integer) и b (integer). В ней хранятся данные вида: a | b ----- 1 | 1 1 | 2 1 | 3 1 | 4 1 | 5 1 | 6 1 | 7 1 | 8 2 | 1 2 | 2 2 | 3 2 | 4 2 | 5 2 | 6 3 | 1 3 | 2 3 | 3 3 | 4 3 | 5 3 | 6 3 | 7 Мне нужно выбрать максимальные значения b для каждого из значений a, т.е. получить результат вида: a | b ----- 1 | 8 2 | 6 3 | 7 Подскажите, пожалуйста, каким должен быть SQL-запрос? |
16 дек 13, 13:43 [15298602] Ответить | Цитировать Сообщить модератору |
Knyazev Alexey Member Откуда: Екб -> Мск Сообщений: 10232 Блог |
select a, max(b) max_b from MyTable group by a |
16 дек 13, 13:44 [15298609] Ответить | Цитировать Сообщить модератору |
Luciy Mortem Member Откуда: Сообщений: 18 |
Спасибо. А если есть еще поля c, d и т.д., в которых неповторяющиеся значения. Т. е. вид такой: a | b | с | ... ---------- 1 | 1 | А 1 | 2 | Б 1 | 3 | В 1 | 4 | Г 1 | 5 | Д 1 | 6 | Е 1 | 7 | Ё 1 | 8 | Ж 2 | 1 | З 2 | 2 | И 2 | 3 | Й 2 | 4 | К 2 | 5 | Л 2 | 6 | М 3 | 1 | Н 3 | 2 | О 3 | 3 | П 3 | 4 | Р 3 | 5 | С 3 | 6 | Т 3 | 7 | У А задача всё та же: a | b | с | ... ---------- 1 | 8 | Ж 2 | 6 | М 3 | 7 | У GROUP BY здесь уже не удастся использовать. Через вложенные запросы? |
16 дек 13, 13:55 [15298702] Ответить | Цитировать Сообщить модератору |
Игорь Горбонос Member Откуда: Днепропетровск Сообщений: 4236 |
Luciy Mortem, А почему нельзя добавить max на третье поле? |
16 дек 13, 13:59 [15298729] Ответить | Цитировать Сообщить модератору |
Добрый Э - Эх
Guest |
Luciy Mortem, выбирай на свой вкус и исходя из возможностей своего сервера... |
16 дек 13, 14:00 [15298741] Ответить | Цитировать Сообщить модератору |
Luciy Mortem Member Откуда: Сообщений: 18 |
Спасибо, не додумался. |
16 дек 13, 14:03 [15298760] Ответить | Цитировать Сообщить модератору |
Добрый Э - Эх
Guest |
|
||
16 дек 13, 14:03 [15298763] Ответить | Цитировать Сообщить модератору |
Luciy Mortem Member Откуда: Сообщений: 18 |
К счастью, выборка происходит последовательно, т.е. с результата отбора первого максимального значения все последующие максимальные значения берутся только из одного возможного варианта. В общем, отрабатывает всё корректно. Еще раз спасибо за помощь. |
||||
16 дек 13, 14:08 [15298800] Ответить | Цитировать Сообщить модератору |
Luciy Mortem Member Откуда: Сообщений: 18 |
Увы, я ошибся. Добрый Э - Эх был прав. Результат - каша. =/ |
16 дек 13, 14:20 [15298892] Ответить | Цитировать Сообщить модератору |
Luciy Mortem Member Откуда: Сообщений: 18 |
Вопрос остается открытым. =) |
16 дек 13, 14:21 [15298893] Ответить | Цитировать Сообщить модератору |
Luciy Mortem Member Откуда: Сообщений: 18 |
Совсем слепой. Добрый Э - Эх, спасибо, проглядел пост. |
16 дек 13, 14:23 [15298916] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |