Sybase: Ter operando em linhas?
Eu me deparei com o seguinte SYBASE SQL:
-- Setup first
create table #t (id int, ts int)
go
insert into #t values (1, 2)
insert into #t values (1, 10)
insert into #t values (1, 20)
insert into #t values (1, 30)
insert into #t values (2, 5)
insert into #t values (2, 13)
insert into #t values (2, 25)
go
declare @time int select @time=11
-- This is the SQL I am asking about
select * from (select * from #t where ts <= @time) t group by id having ts = max(ts)
go
Os resultados deste SQL são
id ts
----------- -----------
1 10
2 5
Isso parece com a condição HAVING aplicada a linhas em vez de grupos. Alguém por favor pode me apontar em um lugar é a documentação do Sybase 15.5 onde este caso é descrito? Tudo o que vejo é "ter operações em grupos". O mais próximo que vejo nos documentos é:
A cláusula having pode incluir colunas ou expressões que não estão na lista de seleção e não na cláusula group by.
(Citação doAqui).
No entanto, eles não explicam exatamente o que acontece quando você faz isso.