|
| 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
| |
|
|