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

Откуда:
Сообщений: 1067
select s.OBJID
			,s.id	
			,s.DATE
			,s.value 
from (select c.OBJID
			,c.id	
			,c.DATE
			,c.value 
			,ROW_NUMBER() over (partition by objid,id order by date desc) rn

from _1SCONST c) s
where s.rn=1
order by objid,id


-- этот возвращает больше
select c.OBJID	
			,c.id
			,c.DATE
			,c.value 
			
from _1SCONST c
where 1=1 
and DATE=(select MAX(date) from _1SCONST cc where cc.OBJID=c.OBJID and cc.ID=c.id)
order by objid,id

на первый взгляд, запросы должны возвращать одинаковый набор данных. однако второй возвращает больше
ума не приложу, что не так?
22 окт 17, 14:10    [20889784]     Ответить | Цитировать Сообщить модератору
 Re: запросы возвращают разное количество записей  [new]
Ролг Хупин
Member

Откуда: Чебаркуль
Сообщений: 3436
waszkiewicz
на первый взгляд, запросы должны возвращать одинаковый набор данных. однако второй возвращает больше
ума не приложу, что не так?


про первый взгляд понравилось
22 окт 17, 14:21    [20889803]     Ответить | Цитировать Сообщить модератору
 Re: запросы возвращают разное количество записей  [new]
waszkiewicz
Member

Откуда:
Сообщений: 1067
Ролг Хупин,
если благородному дону не нравится формулировка - ок,
"мечталось, что два запроса вернут одинаковый набор данных. Но что-то пошло не так"
22 окт 17, 14:27    [20889813]     Ответить | Цитировать Сообщить модератору
 Re: запросы возвращают разное количество записей  [new]
Добрый Э - Эх
Guest
waszkiewicz,

В таблице на каждую пару id-obj_id приходится больше одной строки с одинаково максимальной датой. Замени в первом запросе row_number на dense_rank и получишь идентичные со вторым результаты...
22 окт 17, 14:37    [20889832]     Ответить | Цитировать Сообщить модератору
 Re: запросы возвращают разное количество записей  [new]
waszkiewicz
Member

Откуда:
Сообщений: 1067
Добрый Э - Эх,

коротко, по делу и без понтов. Спс
22 окт 17, 14:57    [20889896]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить