2011-02-02 8 views
2

私はすべてのエントリのページヒットを記録する列を含むデータベーステーブルを持っています。SQLを使用してデータベース列から上位10の最大数値を選択するにはどうすればよいですか?

私は、データベースからトップ5最もヒットページを選択したいのですが、単にSQLを使用して、そうする権利の方法を見つけるように見えることはできません。特に私は、すべてのエントリを選択し、後でPHPを使用してそれをスキャンすることを含まないものを探しています。

SQLを使ってこれを行うには、どうすればよいですか?

ありがとうございました。

+2

10または5でありますか? 5または10? – eumiro

+0

** WHAT **データベース? **どちらのバージョン? –

答えて

4

このアプローチしてみてください。MySQLで

SELECT column1, column2, hit_pages,... 
FROM YourTable 
ORDER BY hit_pages DESC 
LIMIT 5 
+2

注意:select *は使用しないでください。必要な列だけを選択してください。 –

+1

@Jong - 提供されたテーブル構造を持たないより良い例を挙げるのは難しいです。 – eumiro

+0

@eumiro表の構造は、特にOPの質問を考慮して、ジョンの点とは関係がありません。テーブル内のすべての列**を特に必要としない限り、決して 'SELECT *' **を使用するべきではありません。 –

3

>製品からのOralce>SELECT * FROM table ORDER BY hits DESC where rownum <5;

+0

私はそれがORDER BYのヒストリーDESC(ASCではなく) –

+0

@ Jong - yeh、電話で話し、答えを明らかにする入力の危険があると思う;-) – diagonalbatman

+1

オラクルノート:注文後にWHERE ROWNUM句を置くことが重要ですBY節。それ以外の場合は、テーブルの最初の5行をデータベースによって非決定的に選択して並べ替えています。 –

0

SELECT TOP 10価格(列名)(テーブル名)価格DESC順にSELECT * FROM table ORDER BY hits DESC limit 5;

を。

以下

は出力

 
price 
263.5 
123.79 
97 
81 
62.5 
55 
53 
49.3 
46 
45.6 
関連する問題