Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Задачка, использующая связанные подзапросы  [new]
m1r0s
Member

Откуда:
Сообщений: 3
Есть простая задачка:
записать команду SELECT, использующую связанные подзапросы и выбирающие имена и идентификаторы студентов, у которых стипендия совпадает с максимальным значением стипендии для города, в котором живет студент.
Решение:
SELECT ID, FirstName
FROM dbo.Student AS A
WHERE (Stipend =
(SELECT MAX(Stipend)
FROM dbo.Student AS B
WHERE (A.IDCity = B.IDCity)))
Вопрос:
Есть ли какой ни будь альтернативный вариант решения этой задачки?
11 ноя 11, 00:43    [11578704]     Ответить | Цитировать Сообщить модератору
 Re: Задачка, использующая связанные подзапросы  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22550
select top 1 with ties ID, FirstName
  from Student
 order by row_number() over(partition by IDCity order by Stipend desc)
тестируйте
11 ноя 11, 00:50    [11578725]     Ответить | Цитировать Сообщить модератору
 Re: Задачка, использующая связанные подзапросы  [new]
invm
Member

Откуда: Москва
Сообщений: 9838
select top (1) with ties
 ID, FirstName
from
 dbo.Student
order by
 row_number() over (partition by IDCity order by Stipend desc);
11 ноя 11, 00:53    [11578733]     Ответить | Цитировать Сообщить модератору
 Re: Задачка, использующая связанные подзапросы  [new]
m1r0s
Member

Откуда:
Сообщений: 3
Паганель, благодарю, работает, только выводит одного студента из каждого города, а должен выводить всех студентов с максимальной стипендией (у нескольких студентов из одного города может быть одинаковая стипендия). Не могли бы вы пояснить, как работает ваше решение.
11 ноя 11, 01:12    [11578774]     Ответить | Цитировать Сообщить модератору
 Re: Задачка, использующая связанные подзапросы  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22550
блин забыл, давно не программировал
row_number() замените на rank()
11 ноя 11, 01:28    [11578815]     Ответить | Цитировать Сообщить модератору
 Re: Задачка, использующая связанные подзапросы  [new]
m1r0s
Member

Откуда:
Сообщений: 3
Спасибо. Разобрался!
11 ноя 11, 19:21    [11584890]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить