Avatar billede gomerpyle99 Nybegynder
14. juni 2006 - 22:20 Der er 3 kommentarer og
1 løsning

Finde laveste *unikke* tal i en kolonne

Ja, så måtte eksperten jo prøves. Håber I kan hjælpe :-)

Jeg forsøger at emulere et lidt anderledes auktionssystem hvor det vindende bud er det laveste bud som samtidig er unikt. Dvs. at hvis der eksisterer fem bud (2, 2, 3, 4, 5), da vil 3 vinde fordi det er laveste bud som også er unikt.
På nuværende tidspunkt har jeg en nogenlunde virkende implementation i PHP, men det er med ganske mange kald til databasen. Derfor vil jeg gøre dette udelukkende i SQL.
Det jeg vil høre fra jer eksperter er om dette overhovedet er muligt at opnå med SQL (specifikt MySQL), og i så fald hvordan det skal gribes an. Jeg har læst mig idiot i MySQL-dokumentation og har flere gange troet jeg havde løst problemet; men ak.
Jeg har bl.a. prøvet at bruge SELECT DISTINCT og tage den laveste værdi deraf, men det holder jo ikke fordi DISTINCT i ovenstående eksempel ville returnere 2, 3, 4, 5. Jeg har også prøvet diverse måder at JOINe på, men også uden held. Jeg har også tænkt på om det kunne klares ved at skrive en funktion i databasekaldet, men SQL er ikke min stærkeste side.
Men dette må da kunne lade sig gøre uden at jeg tvinger PHP til at voldtage databasen mens den går igennem 1000 tal.

Håber I kan kaste lys på mit problem, og på forhånd tak for svar.
Avatar billede arne_v Ekspert
14. juni 2006 - 22:25 #1
SELECT MIN(bud) FROM (SELECT bud,COUNT(*) AS n FROM tabel GROUP BY bud HAVING COUNT(*) = 1) x

maaske
Avatar billede arne_v Ekspert
14. juni 2006 - 22:25 #2
kraever nyere MySQL
Avatar billede gomerpyle99 Nybegynder
24. juni 2006 - 18:34 #3
arne_v: Ah, det virker jo strålende! Tusind tak, og læg venligst et svar.
Avatar billede arne_v Ekspert
25. juni 2006 - 01:16 #4
kommer her
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