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

Откуда: из России
Сообщений: 901
Есть таблица
dev Lastdatet Amount LastError LastOkDate ID CreatedDateTime
1844769 2010-04-20 15:16:08.000 0 2010-04-21 05:16:08.000 2010-04-20 15:16:00.000 313008 2010-11-10 09:44:37.890
1844769 2010-04-20 15:16:08.000 0 2010-04-21 05:16:08.000 2010-04-20 15:16:00.000 313005 2010-11-10 09:42:53.99
1845853 2010-04-21 13:16:08.000 0 NULL 2010-04-21 13:15:00.000 2 2010-10-11 10:38:31.890
1858572 2010-04-21 10:16:08.000 25320 NULL NULL 313010 2010-11-10 09:44:37.890
как выбрать максимальные строки для каждого dev по max(id),
у меня получается выбрать строки с столбцами dev, id,
select inc.[dev],  max(inc.id) id from table inc group by dev
а как добавить в эту выборку остальные строки?

можно сделать с Row_number() over (partion ...), но очень не выгодно получается.
строк в таблице >3 млн, dev около 3000.

MS SQL2008
27 май 11, 16:42    [10721394]     Ответить | Цитировать Сообщить модератору
 Re: Выборка максимальных значений  [new]
Prolog
Member

Откуда: Москва
Сообщений: 2793
Можно по-старинке:
select * from table t1 join (select inc.[dev],  max(inc.id) id from table inc group by dev) t2 on t1.id = t2.id
У вас все нужные индексы?
27 май 11, 16:49    [10721460]     Ответить | Цитировать Сообщить модератору
 Re: Выборка максимальных значений  [new]
Slava_Nik
Member

Откуда: из России
Сообщений: 901
Prolog,
блин , что-то я стормозил.
27 май 11, 16:53    [10721519]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить