Vinnaren i pepparkakshustävlingen!
2010-08-08, 17:26
  #1
Medlem
Hej jag behöver hjälp kring en SQL-fråga.
Jag har den här databasen: http://laddauppbilder.se/?di=212812808522

och frågan lyder: Ta fram namn på den största avdelningen (den som har flest barn)!

Jag har fått en lösning men den känns för invecklad och jag undrar om någon har en enklare lösning på detta.

Lösningen jag har fått är såhär

SELECT Avdelning.namn
FROM Avdelning, Barn
WHERE Barn.avdelning = Avdelning.id
GROUP BY Avdelning.namn
HAVING COUNT(*) = (SELECT MAX(antal)
FROM (SELECT COUNT(*) AS antal
FROM Barn
GROUP BY avdelning))

Tacksam för svar.
Citera
2010-08-08, 21:11
  #2
Medlem
dethalvabarnets avatar
where rowid == 1 eller top()?
Citera
2010-08-09, 06:10
  #3
Medlem
Ogillar den typen av query.
Brukar helt enket fixa den med bakomliggande kod ist.
Men sömnlös och förkyld så testar jag.
Betrakta koden som pseudo då jag inte testat.

SELECT COUNT(avdelning) AS antal FROM barn
JOIN avdelning ON avdelning.id = barn.avdelning
GROUP BY barn.avdelning
ORDER BY antal DESC LIMIT 1
Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback