簡體   English   中英

MySQL計算最大行數

[英]MySQL count maximum number of rows

我試圖從具有以下結構的表中選擇每個部門中具有最大注冊量的類:

課程:cid,dept,name

報名:cid,sid

我們的想法是計算每個班級的所有注冊人數,並找出每個部門的最大注冊人數。 不幸的是,我遇到了最大計數組合的問題。

我的查詢看起來像是這樣的:

 SELECT c.name, MAX(COUNT(*) FROM Enrollment E WHERE E.cid = C.cid)
 FROM Courses C
 GROUP BY C.dept

但我無法弄清楚如何使MAX-COUNT語法正常工作。 我嘗試了很多來自Google和StackOverflow的不同示例,但沒有一個能為我工作。 MySQL說語法錯了。

我喜歡這種問題的嵌套查詢。 首先選擇每個類別分組的注冊計數。 然后找到按部門分組的最大注冊計數:

SELECT MAX(cnt) cnt, dept FROM
(
    SELECT COUNT(*) cnt, dept, C.cid
    FROM Courses C 
        INNER JOIN Enrollment E on C.cid = E.cid
    GROUP BY cid, dept
) a
GROUP BY dept

沒有E的聲明,所以你不能使用E.cid

所以,要么你這樣做

SELECT c.name, COUNT(c.*) as count 
FROM Courses C
GROUP BY C.dept

要么,

 SELECT c.name, MAX(SELECT COUNT(*) FROM Enrollment E WHERE E.cid = C.cid)
 FROM Courses C
 GROUP BY C.dept
SELECT MAX(cnt) FROM (
    SELECT c.name, COUNT(E.*) AS cnt FROM Enrollment E
    INNER JOIN Courses C ON E.cid = C.cid
    GROUP BY C.dept
) final

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM