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

Откуда:
Сообщений: 2
Есть таблица в БД, у которой есть условно 3 поля (id,key,t_date). Поле id не является уникальным и может повторяться, а key уникальный. Необходимо вывести значения столбца key по id и максимальной дате t_date. Вот мой запрос:
 select 
(
	select top 1 key 
	from my_table
	where id = mt2.id 
	order by t_date desc 
) as stack_key
from my_table mt2
group by id


Можно ли оптимизировать данный запрос через агрегатные функции или вообще?
Для наглядности структура таблицы в приложенном файле.

К сообщению приложен файл. Размер - 4Kb
4 фев 19, 16:39    [21801438]     Ответить | Цитировать Сообщить модератору
 Re: Оптимизация запроса  [new]
invm
Member

Откуда: Москва
Сообщений: 8379
Petrovich0909,

with t as
(
 select
  id, key, t_date,
  row_number() over (partition by id order by t_date desc) as rn
 from
  my_table
)
select
 id, key, t_date
from
 t
where
 rn = 1;
4 фев 19, 16:47    [21801446]     Ответить | Цитировать Сообщить модератору
 Re: Оптимизация запроса  [new]
Petrovich0909
Member

Откуда:
Сообщений: 2
invm, большое спасибо.
4 фев 19, 17:01    [21801453]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить