从sql count查询中过滤最大值

ami*_*itl 3 sql oracle oracle11g

我目前有以下查询

SELECT organisation.organisationID, COUNT(organisation.organisationID)
FROM position, positionLocation, organisation
WHERE position.positionLocationID = positionLocation.positionLocationID AND
positionLocation.organisationID = organisation.organisationID AND
position.status = 'Open'
GROUP BY organisation.organisationID;
Run Code Online (Sandbox Code Playgroud)

此查询输出

organisationID | countOrganisationID
1                3
3                2
5                3
Run Code Online (Sandbox Code Playgroud)

我想显示具有max countOrganisationID的记录.理想情况下,如果可能的话,我只想输出organisationID及其相应的organisationName.

有点像

organisationID | organisatioName
1                name1
5                name2
Run Code Online (Sandbox Code Playgroud)

任何帮助将是欣赏

谢谢

Jef*_*emp 5

Barrett是对的,RANK()是要走的路,例如:

SELECT organisationID, c FROM (
  SELECT organisationID
        ,c
        ,RANK() OVER (ORDER BY c DESC) r
  FROM (
    SELECT organisation.organisationID
          ,COUNT(organisation.organisationID) AS c
    FROM position, positionLocation, organisation
    WHERE position.positionLocationID = positionLocation.positionLocationID
    AND positionLocation.organisationID = organisation.organisationID
    AND position.status = 'Open'
    GROUP BY organisation.organisationID
  )
) WHERE r = 1;
Run Code Online (Sandbox Code Playgroud)