0

hospitalid,hosp name and hosp type関連付けられている医師の数が最も多い病院の を表示したいと考えています。

私は2つのテーブルを持っています:

医者:doctorid, hospitalid

病院:hospitalid, hname, htype

SELECT d.hospitalid,h.hname,h.htype 
FROM doctor d 
INNER JOIN hospital h ON d.hospitalid = h.hospitalid 
GROUP BY d.hospitalid,h.hname,h.htype 
HAVING MAX(count(d.doctorid));

上記のコードを試してみましたが、「グループ関数のネストが深すぎます」というエラーが表示されます。dコードをどのように変更すればよいですか?

4

2 に答える 2

0

これは、SQL Server 用に記述する方法です。具体的な詳細は、使用しているデータベース バックエンドによって異なる場合があります。

SELECT TOP 1 a.hospitalid,a.hname,a.htype
FROM 
(SELECT d.hospitalid,h.hname,h.htype, count(d.doctorid) as doctorcount FROM doctor d INNER JOIN hospital h ON d.hospitalid = h.hospitalid 
 GROUP BY d.hospitalid,h.hname,h.htype) a
ORDER BY doctorcount DESC;
于 2013-07-16T14:09:29.930 に答える