2017-05-19 9 views
-1

は、学生数が最も少ない部署の名前を表示しようとしました。テーブル構造がある ERRORは「グループ関数がネストされていますか」ですか?

SELECT department_name 
FROM department natural join student 
GROUP BY department_name 
HAVING MIN(COUNT(*)); 

のように=>

the question was

+0

あなたのクエリは無意味です。だから、https://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-seems-to-me-to-be-a-very-simple-sql-代わりに – Strawberry

答えて

0

はこのような何かを試してみてください:

SELECT TOP 1 department_name, count(*) AS number_of_students 
FROM department natural join student 
GROUP BY department_name 
ORDER BY number_of_students 

は、それはあなたの学生の数が発注部署のリストが表示されます。 TOP 1で最初の行のみを選択すると、学生数が最も少ない部門にしか届きません。

+0

はdepartment_nameを表示するだけで、同じ最小値を持つ複数の行を持つことができます。 –

+1

TOPはMySQL構文ではなくMSSQL構文ですので、あなたの答えは間違っています –

0

このような感じですか?

SELECT 
T1.department_name, COUNT(T2.department_id) totalCount 
FROM department T1 
LEFT JOIN student T2 
ON T1.department_id = T2.department_id 
GROUP BY T2.department_id 
HAVING COUNT(T2.department_id) = 
(
    SELECT 
    COUNT(T2.department_id) totalCount 
    FROM department T1 
    LEFT JOIN student T2 
    ON T1.department_id = T2.department_id 
    GROUP BY T2.department_id 
    ORDER BY totalCount ASC 
    LIMIT 1 
) 

SQLFIDDLE DEMO

関連する問題