は、私は自分のDB内の2つのテーブルを持っている:SQL - サブクエリの有無にかかわらずカウント?
Building(bno,address,bname) - PK is bno. bno
Room(bno,rno,floor,maxstud) - PK is bno,rno (together)
ビルテーブルは建物番号、住所と名前を表します。 部屋のテーブルは、建物の番号、部屋番号、階数、部屋に居れる生徒の最大人数を表します。私が書く必要が
クエリ:
が住んでいることができ、学生の最大量は1列はBNOあるべきである、少なくとも10件の客室を提供してい建物、BNAME、数を探しますそのような部屋。
私が書いたもの:
select building.bno, building.bname, count(rno)
from room natural join building
where maxstud =1
group by bno, bname
having count(rno)>=10
私は何を持っている状態ソリューション:
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
が私の解決策は正しいですか?私はサブクエリを使う理由は見当たりませんでしたが、今は間違っていました。
おかげで、
アラン
私はあなたが句によってグループ内のすべての非凝集の列が含まれていないので、あなたのソリューションがコンパイルされませんと主張していると思います。 @KamilG。 –
。あなたは正しいです、ありがとう! – Alan