/ Forside / Teknologi / Udvikling / SQL / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
Hjælp til et SQL-kald
Fra : news.cybercity.dk


Dato : 24-11-06 11:59

Hej

Jeg har brug for hjælp til et kald, som jeg synes burde være simpelt, men
jeg kan ikke regne ud, hvordan det skal være!

Eksempel:

Navn Nummer
Jens 3
Jens 5
Ib 6
Jens 12
Ib 4

Jeg vil nu gerne hive det højeste tal ud for hver navn. Altså kun et
resultat for hver navn. Resultatet af eksemplet skal gerne være:

Navn Nummer
Jens 12
Ib 6

Men hvordan fa'en skal sql-forspørgslen lyde?

/Morten



 
 
Thorbjørn Ravn Ander~ (24-11-2006)
Kommentar
Fra : Thorbjørn Ravn Ander~


Dato : 24-11-06 12:10

"news.cybercity.dk" <mhj @ solisimo . dk> writes:

> Navn Nummer
> Jens 12
> Ib 6
>
> Men hvordan fa'en skal sql-forspørgslen lyde?

En kombination af MAX() og GROUP BY?
--
Thorbjørn Ravn Andersen

Martin Christensen (24-11-2006)
Kommentar
Fra : Martin Christensen


Dato : 24-11-06 12:21

"news.cybercity.dk" <mhj @ solisimo . dk> writes:
> Navn Nummer
> Jens 12
> Ib 6

SELECT navn, max(nummer) FROM tabel GROUP BY navn

Martin

news.cybercity.dk (24-11-2006)
Kommentar
Fra : news.cybercity.dk


Dato : 24-11-06 12:45

Hej Martin

Den virker på det eksempel jeg gav, men hvis der kommer en kolonne mere på,
som også skal hives ud, så returneres alle linier.

Altså hvis eksemplet ser sådan ud:

navn nummer1 nummer2

og jeg gerne vil hive et navn og nummer2 ud for hver navn med højeste
nummer1. Dvs. samme som oprindelige eksempel, men med en kolonne mere.

/Morten




"Martin Christensen" <martin.sand.christensen@gmail.com> skrev i en
meddelelse news:87psbdxf8n.fsf@fangorn.rev.stofanet.dk...
> "news.cybercity.dk" <mhj @ solisimo . dk> writes:
>> Navn Nummer
>> Jens 12
>> Ib 6
>
> SELECT navn, max(nummer) FROM tabel GROUP BY navn
>
> Martin



Thorkil Olesen (27-11-2006)
Kommentar
Fra : Thorkil Olesen


Dato : 27-11-06 21:07

news.cybercity.dk <mhj@solisimo.dk> wrote:

> Den virker på det eksempel jeg gav, men hvis der kommer en kolonne mere på,
> som også skal hives ud, så returneres alle linier.
>
> Altså hvis eksemplet ser sådan ud:
>
> navn nummer1 nummer2
>
> og jeg gerne vil hive et navn og nummer2 ud for hver navn med højeste
> nummer1. Dvs. samme som oprindelige eksempel, men med en kolonne mere.

Det er et klassisk spørgsmål, som har været behandlet før. Her er et
forslag.

SELECT navn, nummer1, nummer2 FROM tabel NATURAL JOIN
( SELECT navn, max(nummer1) as nummer1 FROM tabel GROUP BY navn ) as t2;

--
Thorkil Olesen,
Hanstholm.

Martin Christensen (24-11-2006)
Kommentar
Fra : Martin Christensen


Dato : 24-11-06 16:33

"news.cybercity.dk" <mhj @ solisimo . dk> writes:

> Den virker på det eksempel jeg gav, men hvis der kommer en kolonne
> mere på, som også skal hives ud, så returneres alle linier.

Jeg er sikker på, at GROUP BY-klausulen er beskrevet et eller andet
sted på Internettet eller i manualen til din DBMS. Et hurtigt opslag
ville fortælle dig, at når der er en GROUP BY-klausul, skal alle
felter i resultatet enten bruges i grupperingen eller være aggregater.

Martin

Søg
Reklame
Statistik
Spørgsmål : 177455
Tips : 31962
Nyheder : 719565
Indlæg : 6408144
Brugere : 218879

Månedens bedste
Årets bedste
Sidste års bedste