Ich habe zwei Tabellen in meiner DB:SQL - zählen mit oder ohne Unterabfrage?
Building(bno,address,bname) - PK is bno. bno
Room(bno,rno,floor,maxstud) - PK is bno,rno (together)
Das Gebäude Tabelle Gebäudenummer, Adresse und Name steht für. Der Room-Tisch steht für die Gebäudenummer, die Raumnummer, die Etagennummer und die maximale Anzahl an Studenten, die im Raum wohnen können.
Die Abfrage, die ich schreiben:
ein Gebäude finden, die mindestens 10 Zimmer, die die maximale Menge an Studenten, die in ist leben können 1. Die Säulen sollten bno, bname, die Anzahl der seine solche Räume.
Was ich schrieb:
select building.bno, building.bname, count(rno)
from room natural join building
where maxstud =1
group by bno, bname
having count(rno)>=10
Was die Lösung, die ich Zustände haben:
with temp as (
select bno, count(distinct rno) as sumrooms
from room
where maxstud=1
group by bno
)
select bno, bname, sumrooms
from building natural join temp
where sumrooms>=10
Ist mein Lösung richtig? Ich habe keinen Grund gesehen, eine Unterabfrage zu verwenden, aber jetzt habe ich Angst, dass ich falsch lag.
Danke,
Alan
ich argumentieren würde, dass Ihre Lösung wird nicht kompiliert, da Sie durch Klausel jede unaggregierter Spalte in der Gruppe nicht enthalten. –
@KamilG. Du hast Recht, danke! – Alan