Avatar billede onomaturgen Nybegynder
01. marts 2006 - 00:42 Der er 5 kommentarer

Select name, max(date_time), value - fejler

Har problemer med et select.

Jeg har en række registreringer af typen;
navn    dato      værdi
-------------------------
navn1    dato1    værdi1
navn1    dato2    værdi2
navn2    dato1    værdi3
navn2    dato2    værdi4
navn2    dato3    værdi5

Jeg ønsker at konstruere en select der returnerer navnet, den seneste dato, samt værdien.

Foretager jeg en nested select (db2);
select navn, dato, værdi from table where dato = (select max(dato) from tabel), returneres navn1 ikke.

Hvorledes selecter jeg således at jeg får returneret den maksimale dato, værdi (for denne dato), grupperet på navnet?
Avatar billede arne_v Ekspert
01. marts 2006 - 01:00 #1
proev:

select navn, dato, værdi from table t1 where dato = (select max(dato) from tabel t2 where t2.navn=t1.navn),
Avatar billede onomaturgen Nybegynder
01. marts 2006 - 09:48 #2
arne_v, du er en helt.
Må jeg bede om et svar?

A word of warning til andre:

Query'en er inderligt ineffektiv. Foretaget på tabel med ca. 9000 entries, på 4-cpu server, 4 GB RAM og db2, nærmer svartiden sig 10 sec.
Avatar billede arne_v Ekspert
01. marts 2006 - 14:18 #3
gerne

er der index paa dato feltet og navn feltet ?

hvis nej => put det paa !
Avatar billede onomaturgen Nybegynder
01. marts 2006 - 15:08 #4
Nope, desværre ikke.

Tak for jælpen.
Avatar billede onomaturgen Nybegynder
01. marts 2006 - 15:08 #5
Hov, du skal da ikke snydes for h'et.
Værsgo', et stk. 'h'.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester