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

Откуда: Урал
Сообщений: 919
Всем привет!

есть таблица:
id, date1, name1, sum1

Подскажите мне пожалуйста, как одним запросом выбрать строку по полю с максимальной датой max(date1)?
2 авг 11, 14:14    [11058855]     Ответить | Цитировать Сообщить модератору
 Re: Выборка строки с максимальной датой  [new]
Glory
Member

Откуда:
Сообщений: 104751
select top 1 * from mytable order by date1 desc
2 авг 11, 14:15    [11058865]     Ответить | Цитировать Сообщить модератору
 Re: Выборка строки с максимальной датой  [new]
kDnZP
Member [заблокирован]

Откуда: ★[msg=16399436]★[msg=20850760]
Сообщений: 11289
zvezda_t, а если таких строк будет несколько?
2 авг 11, 14:15    [11058871]     Ответить | Цитировать Сообщить модератору
 Re: Выборка строки с максимальной датой  [new]
zvezda_t
Member

Откуда: Урал
Сообщений: 919
Glory , Благодарю Вас! Круто)))

kDnZP
zvezda_t, а если таких строк будет несколько?

Тогда, выбираю максимальный id )
2 авг 11, 14:38    [11059060]     Ответить | Цитировать Сообщить модератору
 Re: Выборка строки с максимальной датой  [new]
Glory
Member

Откуда:
Сообщений: 104751
zvezda_t
Glory , Благодарю Вас! Круто)))

Это приблизительно как 2х2
2 авг 11, 14:40    [11059083]     Ответить | Цитировать Сообщить модератору
 Re: Выборка строки с максимальной датой  [new]
zvezda_t
Member

Откуда: Урал
Сообщений: 919
первый вариант будет быстрее работать, чем второй?
1)
select top 1 * from mytable order by date1 desc 

2)
select  * from mytable  date1 =(select max(date1) from mytable) 
2 авг 11, 15:21    [11059445]     Ответить | Цитировать Сообщить модератору
 Re: Выборка строки с максимальной датой  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
zvezda_t
первый вариант будет быстрее работать, чем второй?
1)
select top 1 * from mytable order by date1 desc 

2)
select  * from mytable  date1 =(select max(date1) from mytable) 
Какая разница?
Ведь они дают разный результат!
2 авг 11, 15:22    [11059456]     Ответить | Цитировать Сообщить модератору
 Re: Выборка строки с максимальной датой  [new]
kDnZP
Member [заблокирован]

Откуда: ★[msg=16399436]★[msg=20850760]
Сообщений: 11289
zvezda_t, сравните планы.
2 авг 11, 15:22    [11059457]     Ответить | Цитировать Сообщить модератору
 Re: Выборка строки с максимальной датой  [new]
zvezda_t
Member

Откуда: Урал
Сообщений: 919
iap , Вы правы, спасибо)

А если так?

--1)
select top 1 * from mytable order by id desc 
--2)
select  * from mytable  id =(select max(id) from mytable) 
3 авг 11, 08:30    [11062405]     Ответить | Цитировать Сообщить модератору
 Re: Выборка строки с максимальной датой  [new]
zvezda_t
Member

Откуда: Урал
Сообщений: 919
*во втором запросе WHERE пропустила
3 авг 11, 08:32    [11062407]     Ответить | Цитировать Сообщить модератору
 Re: Выборка строки с максимальной датой  [new]
kDnZP
Member [заблокирован]

Откуда: ★[msg=16399436]★[msg=20850760]
Сообщений: 11289
zvezda_t,
1. Выберет 1 строку (всегда) c максимальным ID
2. Выберет строки, где ID=максимальному

И в первом, и во втором случае о дате речь не идет.
3 авг 11, 08:50    [11062458]     Ответить | Цитировать Сообщить модератору
 Re: Выборка строки с максимальной датой  [new]
zvezda_t
Member

Откуда: Урал
Сообщений: 919
kDnZP
zvezda_t,
1. Выберет 1 строку (всегда) c максимальным ID
2. Выберет строки, где ID=максимальному

И в первом, и во втором случае о дате речь не идет.

Я знаю, что сейчас речь не о датах) мне просто интересно что быстрее.
Если даты могут повторяться, то id же уникален и тогда получается, и первый и второй запрос выбирает только одну строку с максимальным id.
3 авг 11, 09:02    [11062496]     Ответить | Цитировать Сообщить модератору
 Re: Выборка строки с максимальной датой  [new]
Glory
Member

Откуда:
Сообщений: 104751
zvezda_t
Я знаю, что сейчас речь не о датах) мне просто интересно что быстрее.

Вы думаете, что быстрота выполнения зависит только от стиля написания запроса ?
3 авг 11, 09:44    [11062631]     Ответить | Цитировать Сообщить модератору
 Re: Выборка строки с максимальной датой  [new]
gds
Member

Откуда: Железнодорожный
Сообщений: 1842
Блог
zvezda_t
мне просто интересно что быстрее.

Если по id есть индекс, то планы очень похожие, в большинстве случаях одинаковые в %-ых затратах. За исключением возвращаемого количества записей. Уже давно проверенно :)
3 авг 11, 10:13    [11062803]     Ответить | Цитировать Сообщить модератору
 Re: Выборка строки с максимальной датой  [new]
zvezda_t
Member

Откуда: Урал
Сообщений: 919
Glory ,почему от стиля?
В первом случае один запрос, а во втором два (еще же подзапрос есть), разве это не имеет значения?

gds, понятно. значит в быстродействии я не выиграю. спасибо.
3 авг 11, 12:05    [11063708]     Ответить | Цитировать Сообщить модератору
 Re: Выборка строки с максимальной датой  [new]
Glory
Member

Откуда:
Сообщений: 104751
zvezda_t
Glory ,почему от стиля?
В первом случае один запрос, а во втором два (еще же подзапрос есть), разве это не имеет значения?

Что лучше - красное или соленое ?
3 авг 11, 12:50    [11064038]     Ответить | Цитировать Сообщить модератору
 Re: Выборка строки с максимальной датой  [new]
zvezda_t
Member

Откуда: Урал
Сообщений: 919
Glory
zvezda_t
Glory ,почему от стиля?
В первом случае один запрос, а во втором два (еще же подзапрос есть), разве это не имеет значения?

Что лучше - красное или соленое ?


Вы меня конечно извините, я может и ерунду говорю...
Но я всегда думала, что чем больше запросов/подзапросов,тем медленнее выполняется.
3 авг 11, 13:38    [11064317]     Ответить | Цитировать Сообщить модератору
 Re: Выборка строки с максимальной датой  [new]
Glory
Member

Откуда:
Сообщений: 104751
zvezda_t
Но я всегда думала, что чем больше запросов/подзапросов,тем медленнее выполняется.

Давайте тогда всегда для всех задач писать запрос select 1 ?
Офигенно быстро будет
3 авг 11, 13:42    [11064336]     Ответить | Цитировать Сообщить модератору
 Re: Выборка строки с максимальной датой  [new]
zvezda_t
Member

Откуда: Урал
Сообщений: 919
Glory, обиделась...
3 авг 11, 16:09    [11065795]     Ответить | Цитировать Сообщить модератору
 Re: Выборка строки с максимальной датой  [new]
SIMPLicity_
Member

Откуда: (((@)))
Сообщений: 8877
zvezda_t
Glory, обиделась...

Забей!, он - классный. У него только один недостаток - он умный ....
3 авг 11, 23:20    [11068007]     Ответить | Цитировать Сообщить модератору
 Re: Выборка строки с максимальной датой  [new]
kDnZP
Member [заблокирован]

Откуда: ★[msg=16399436]★[msg=20850760]
Сообщений: 11289
kDnZP
zvezda_t, сравните планы.
4 авг 11, 09:28    [11068655]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить