2016-09-28 8 views
1

は、これは私が持っているものです。選択値 - Oracleデータベース

ASSIGNEEとテーブルPATENT。テーブルのエントリの最大数がASSIGNEEであることを確認します。

そして、これは私がやろうとしていますものです:

SELECT ASSIGNEE 
FROM (
    SELECT ASSIGNEE, count(*) num_assignee 
    FROM PATENT 
    GROUP BY ASSIGNEE 
    ORDER BY num_assignee DESC 
) 
WHERE ROWNUM <= 1 

これが唯一最大のための素晴らしい作品は、しかし、同点の場合には、他のASSIGNEEは表示されません。これを解決するには?

答えて

3

あなたはこれを試すことがあります。

SELECT assignee 
FROM (
    SELECT assignee, 
      count(*) num_assignee, 
      MAX(count(*)) OVER() max_num_assignee 
    FROM patent 
    GROUP BY assignee 
    ) 
WHERE num_assignee = max_num_assignee; 
-2

はこれを試してみてください。

SELECT assignee 
FROM 
(
    SELECT TOP 1 assignee, count(*) num_assignee 
    FROM patent 
    GROUP BY assignee 
    ORDER BY num_assignee DESC 
) Source 
関連する問題