2017-08-21 9 views
0

最も頻繁に発生する値を見つけるSQLクエリを作成しようとしています。SQLクエリで最も頻繁に値を取得

SELECT GENRE, COUNT(*) AS Frequency 
FROM BooksRead 
GROUP BY GENRE 

これは、このように私に出力を提供します:

Anthropological   1 
Biography    7 
Crime     4 
Essay     2 

は私が返された結果が、私がTOP 1を使用してみましたが、私のき7になりたい

これまでのところ、私はこれを持っていますJavaコンパイラはそれを好きではないようです。

+0

ご使用のデータベースで質問にタグを付けてください。 –

答えて

0

ANSI SQLの構文は次のようになります。

SELECT GENRE, COUNT(*) AS Frequency 
FROM BooksRead 
GROUP BY GENRE 
ORDER BY COUNT(*) DESC 
FETCH FIRST 1 ROW ONLY; 

すべてのデータベースは、その構文をサポートするわけではありません。多くのサポートLIMIT

SELECT GENRE, COUNT(*) AS Frequency 
FROM BooksRead 
GROUP BY GENRE 
ORDER BY COUNT(*) DESC 
LIMIT 1; 

しかし、正確な構文は、使用しているデータベースに依存します。

また、ANSI標準のウィンドウ関数を使用することができます。

SELECT * 
FROM (SELECT GENRE, COUNT(*) AS Frequency, 
      ROW_NUMBER() OVER (ORDER BY COUNT(*) DESC) as seqnum 
     FROM BooksRead 
     GROUP BY GENRE 
    ) g 
WHERE seqnum = 1; 

あなたはネクタイが、その後ROW_NUMBER()の代わりにRANK()を使用したい場合。

+0

ありがとう!それは素晴らしい仕事でした。 – beh1

関連する問題