显示按条款分组的前10行

时间:2019-01-20 07:49:12

标签: sql sql-server group-by

select COMMUNITY_AREA_NAME, count(COMMUNITY_AREA_NAME) as Number_Of_Schools
from CHICAGO_PUBLIC_SCHOOLS group by COMMUNITY_AREA_NAME order by 2 desc 

我编写了上面的sql查询以获取结果集,该结果集说明了拥有最多学校的社区名称,结果就像这样 但是如何只显示前10个列呢?我使用“限额10”。但是它显示了一些错误。

enter image description here

select Top 10 COMMUNITY_AREA_NAME, count(COMMUNITY_AREA_NAME) as Number_Of_Schools
from CHICAGO_PUBLIC_SCHOOLS group by COMMUNITY_AREA_NAME order by 2 desc 
Limit 10;

错误:

Msg 102, Level 15, State 1, Line 3
Incorrect syntax near 'Limit'.

1 个答案:

答案 0 :(得分:5)

对于您的情况,只需放置TOP 10即可。

select TOP 10 COMMUNITY_AREA_NAME, count(COMMUNITY_AREA_NAME) as Number_Of_Schools
from CHICAGO_PUBLIC_SCHOOLS 
group by COMMUNITY_AREA_NAME 
order by 2 desc
SQL Server不直接支持

LIMIT,如果您使用的是SQLServer 2012+,则可以使用OFFSETFETCH,它们的工作方式类似于LIMIT。您可以在这里Here

了解更多信息

对于旧版本的SQL Server,可以使用ROW_NUMBER()来实现相同目的。