Avatar billede pmnils1 Nybegynder
31. juli 2002 - 08:53 Der er 11 kommentarer og
1 løsning

Distinct på 2 kolonner ?

Hej!

Jeg har en database med f.eks 2 kolonner ("a" og "b")
Jeg ønsker så at få data fra kolonne "a" men KUN hvor "b" forekommer én gang!

dvs jeg ønsker data fra "a" men "b" skal være DISTINCT!


"SELECT DISTINCT a FROM database" giver unikke data fra kolonne a !

men jeg ønsker data fra a - udfra unikke data i b!

f.eks:

SELECT a FROM database WHERE b IN (SELECT DISTINCT b FROM database)

Men det virker ikke! Hvad gør jeg forkert ?
Avatar billede proaccess Nybegynder
31. juli 2002 - 09:02 #1
SELECT First(a) FROM database GROUP BY b;

eller Last(a), Min(a) alt efter hvilken a-værdi du vil have pr. b-værdi...
Avatar billede haunted Nybegynder
31. juli 2002 - 11:13 #2
SELECT a, b FROM tabel1
WHERE b = (SELECT DISTINCT b FROM tabel1);

Er det ikke dette du mener??
Avatar billede haunted Nybegynder
31. juli 2002 - 11:13 #3
:)
Avatar billede proaccess Nybegynder
31. juli 2002 - 11:56 #4
Nej!
Avatar billede proaccess Nybegynder
31. juli 2002 - 11:58 #5
SELECT a, b FROM database WHERE b IN (SELECT b FROM database WHERE Count(*)=1 GROUP BY B);

Så får du alle a- og b-værdi'er, men kun for de records hvor b kun optræder een gang i tabellen...
Avatar billede pmnils1 Nybegynder
31. juli 2002 - 12:56 #6
SELECT avg(a) FROM database GROUP BY b;

Virker sådan set som jeg gerne vil. MEN jeg ønsker ikke at de fundne (unikke) data bliver sorteret efter b. ?

Det var derfor jeg ville bruge DISTINCT.

Andre ideer ?
Avatar billede proaccess Nybegynder
31. juli 2002 - 13:28 #7
SELECT avg(a) FROM database GROUP BY b ORDER BY avg(a);
Avatar billede pmnils1 Nybegynder
31. juli 2002 - 13:52 #8
Nærliggende... Men så er data sorteret efter "a". Jeg ønsker ingen sortering dvs data skal "vises" i samme historik som de kom ind. ?

Kan man evt order by date ?
Avatar billede proaccess Nybegynder
31. juli 2002 - 13:59 #9
Så må du have et felt, som angiver denne rækkefølge...

Evt. dato/klokkeslet, hvor sstandardværdien =Now() eller et autonummerings-felt med stigende værdier...

Feltnavnet skal så sættes efter en ORDER BY!
Avatar billede kichian Nybegynder
02. august 2002 - 10:33 #10
SELECT DISTINCT a, b FROM Tabel
Avatar billede kichian Nybegynder
02. august 2002 - 10:38 #11
Eller

SELECT a from tabel group by a having count(b) = 1
Avatar billede proaccess Nybegynder
25. august 2002 - 12:12 #12
>pmnils1: Kom du videre med dette??
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