Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 select id,max(dat),{first(site where date=max(dat))} условная выборка по агрегатным функц  [new]
vikkiv
Member

Откуда: London
Сообщений: 2712
привет, как не затратно/поэлегантнее выбрать из таблицы (десятки миллионов записей)
create table data(studentid int,examdate date,examsite int)
для каждого студента дату последнего экзамена (examdate) и место этого экзамена (examsite)
в смысле дату последнего экзамена через
select studentid,max(examdate)mx from data group by studentid
найти не вопрос, проблемка именно в перенесением этого max(examdate) в условие отбора строки/строк для examsite
подзабыл эти конструкции немного, спасибо.
П.С. Тяжелое не предлагать (with cte ...) и можно-ли избежать больших под-выборок типа row_number() ?
25 фев 15, 15:32    [17310786]     Ответить | Цитировать Сообщить модератору
 Re: select id,max(dat),{first(site where date=max(dat))} условная выборка по агрегатным функц  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
17128466
25 фев 15, 15:36    [17310822]     Ответить | Цитировать Сообщить модератору
 Re: select id,max(dat),{first(site where date=max(dat))} условная выборка по агрегатным функц  [new]
iap
Member

Откуда: Москва
Сообщений: 47001
vikkiv
П.С. Тяжелое не предлагать (with cte ...) и можно-ли избежать больших под-выборок типа row_number() ?
Какие вы, в Лондоне, капризные, однако!
25 фев 15, 15:38    [17310839]     Ответить | Цитировать Сообщить модератору
 Re: select id,max(dat),{first(site where date=max(dat))} условная выборка по агрегатным функц  [new]
Добрый Э - Эх
Guest
vikkiv,

STFF
25 фев 15, 15:39    [17310841]     Ответить | Цитировать Сообщить модератору
 Re: select id,max(dat),{first(site where date=max(dat))} условная выборка по агрегатным функц  [new]
vikkiv
Member

Откуда: London
Сообщений: 2712
Да, огромное спасибо, subquery вариант с
 ...distinct studentid,FIRST_VALUE(examsite)over(partition by studentid order by examdate desc)lastsite ...
вполне подошел по производительности.
25 фев 15, 16:07    [17311040]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить