/ 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
DISTINCT eller GROUP BY
Fra : D. Johnson


Dato : 20-07-04 19:22

Hej,
Jeg er i tvivl om hvornår jeg skal bruge DISTINCT eller GROUP BY.
Jeg bruger MySQL 3.23.47

Hvis jeg har en tabel med felterne
navn,email,postnummer med følgende data:

Per hans@hans.dk 2200
Per per@per.dk 2200
Per per@per.dk 2200

Jeg vil gerne have fat i rækker med unikke email adresser, men jeg er
lidt i tvivl om hvordan DISTINCT virker.

1) SELECT DISTINCT email,navn,postnummer FROM tabel
2) SELECT * FROM tabel GROUP BY email

Betyder nummer 1 at bare 'email' er unik så må 'navn' og postnummer
gerne være det samme ?

Er der forskel i det udtræk 1 eller 2 vil lave?

--
D. Johnson

 
 
Peter Brodersen (20-07-2004)
Kommentar
Fra : Peter Brodersen


Dato : 20-07-04 19:27

On Tue, 20 Jul 2004 20:21:58 +0200, "D. Johnson" <notme@blah.invalid>
wrote:

>Jeg vil gerne have fat i rækker med unikke email adresser, men jeg er
>lidt i tvivl om hvordan DISTINCT virker.

DISTINCT er blot en kort måde at skrive en GROUP BY, med præcis de
samme felter, som man hiver ud.

>SELECT DISTINCT email,navn,postnummer FROM tabel
er lig med
>SELECT email,navn,postnummer FROM tabel GROUP BY email,navn,postnummer

>SELECT DISTINCT email FROM tabel
er lig med
>SELECT email FROM tabel GROUP BY email

Ved enhver anden kombination (hvor man fx vil have flere felter ud,
men kun lave en GROUP BY på ét felt), skal man bruge GROUP BY.


DISTINCT knytter sig altså til alt, hvad man SELECT'er ud, så i
følgende eksempel:
>SELECT DISTINCT email,navn,postnummer FROM tabel
... er DISTINCT altså ikke kun knyttet til email.

--
- Peter Brodersen

Ugens sprogtip: alle sammen (og ikke allesammen)

D. Johnson (20-07-2004)
Kommentar
Fra : D. Johnson


Dato : 20-07-04 19:36

Peter Brodersen <cdjo6j$8v2$1@katie.ellegaard.dk>:

[...]

> Ved enhver anden kombination (hvor man fx vil have flere felter ud,
> men kun lave en GROUP BY på ét felt), skal man bruge GROUP BY.
>
>
> DISTINCT knytter sig altså til alt, hvad man SELECT'er ud, så i
> følgende eksempel:
>>SELECT DISTINCT email,navn,postnummer FROM tabel
> .. er DISTINCT altså ikke kun knyttet til email.

Tak for det, det giver god mening.

--
D. Johnson

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408924
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste