2017-03-18 7 views
0

私はいくつかの助けを望んでいました。私はSQL検索クエリを書いたことが一度もありません。これは下の問題のために働くでしょうか?あなたの時間をありがとう。トップn行を取得する方法

SELECT * FROMテーブルORDER BY人口DESC制限3;

ここに問題があります: 次のデータベーステーブルが与えられたら、最も高い集団を持つ3匹の動物の動物名と食物を返すSQLクエリを作成します。

|id |animal |food  |population | 
|---|----------|------------|-----------| 
|35 |ocelot |mouse  |1200000 | 
|36 |dingo  |rabbit  |16000000 | 
|41 |capybara |grass  |400000  | 
|52 |remora |blood  |82000000 | 
|54 |emu  |fruit  |725000  | 
|63 |gecko  |insects  |9000000 | 
|68 |earwig |lettuce  |420000000 | 
+0

どのデータベースあなたが本当にOracleまたはMySQLを使用していますか? – GurV

答えて

4

のOracle 11gではまたは前に、あなたがサブクエリから注文結果にrownumフィルタを使用することができます。

のOracle 12cは+で
select * 
from (
    Select * 
    From Your_table 
    Order by population desc 
) t where rownum <= 3; 

は、あなたがFETCH FIRST句を使用することができます:MySQLで

Select * 
From Your_table 
Order by population desc 
fetch first 3 rows only; 

を、することができます使用LIMIT

Select * 
From Your_table 
Order by population desc 
limit 3; 

QLサーバー、あなたはTOP使用することができます。

Select top 3 * 
From Your_table 
Order by population desc; 
1
select 
    animal, 
    food 
from 
    table 
order by 
    population DESC 
top 3 

これを試してみてください?

+0

降順ではなく昇順で注文しています。 'TOP 3'は有効なMySQL、PL/SQLまたはT-SQLではありません。 – Dai

+0

最初の部分は、おかげで編集し、助けてくれてありがとう。 –

0

使用TOP方法を、あなたの結果を得るために:

SELECT TOP 3 animal,food FROM table order by population DESC 
関連する問題