我希望得到一些帮助。我从来没有写过任何SQL搜索查询,我不确定我是否会离开这里。这会解决下面的问题吗?谢谢你的时间。
SELECT * FROM表ORDER BY population DESC limit 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 :(得分:4)
在Oracle 11g或更早版本中,您可以对子查询的有序结果使用rownum
过滤器:
select *
from (
Select *
From Your_table
Order by population desc
) t where rownum <= 3;
在Oracle 12c +中,您可以使用FETCH FIRST
子句:
Select *
From Your_table
Order by population desc
fetch first 3 rows only;
在MySQL中,您可以使用LIMIT
Select *
From Your_table
Order by population desc
limit 3;
在SQL Server中,您可以使用TOP
:
Select top 3 *
From Your_table
Order by population desc;
答案 1 :(得分:1)
select
animal,
food
from
table
order by
population DESC
top 3
试试这个吗?
答案 2 :(得分:0)
使用TOP方法获得结果:
SELECT TOP 3 animal,food FROM table order by population DESC