我使用了一条select语句来获取俱乐部名单的数量:
SELECT club,COUNT(club) as mycount FROM member GROUP BY club
CLUB COUNT
--------------- -----------
UCLA Club 5
George Club 11
我需要显示计数表的最小数量:
CLUB COUNT
--------------- -----------
UCLA Club 5
我使用了此语句,但它只显示了最小数目,因为我需要表格看起来像上面的那一列一样。如何获得俱乐部名称:
选择MIN(mycount)作为COUNT FROM(选择俱乐部,按俱乐部的COUNT(club)mycount FROM成员组)
我尝试做:
SELECT俱乐部,MIN(mycount)为Count FROM(SELECT俱乐部,COUNT(club)mycount FROM yrb_member group by俱乐部)
但是当我在选择之后放俱乐部时,这给了我一个错误
答案 0 :(得分:1)
使用order by
和fetch first
:
SELECT club, COUNT(club) as mycount
FROM member
GROUP BY club
ORDER BY COUNT(club)
FETCH FIRST 1 ROWS WITH TIES;
注意:有关系时,此返回多行。
编辑:
如果您需要处理领带,请使用RANK()
:
SELECT club, mycount
FROM (SELECT club, COUNT(club) as mycount,
RANK() OVER (ORDER BY COUNT(club) DESC) as seqnum
FROM member
GROUP BY club
) m
WHERE seqnum = 1;
答案 1 :(得分:1)
我的回答更长了一点,但让我难以置信。
SELECT cl.club, cnt.mincnt FROM
(SELECT club, COUNT(*) cnt FROM member GROUP BY club) cl,
(SELECT MIN(cnt) mincnt FROM (SELECT club, COUNT(*) cnt FROM member GROUP BY club)) cnt
WHERE cl.cnt = cnt.mincnt;