计数,订购desc并选择前5名

时间:2012-12-05 23:59:20

标签: sql sql-server sql-server-2012

SQL Server 2012

我们有一张表,如:

ticket, type
------------------
1234, hardware
1543, software
8859, network
5832, hardware
4900, hardware
8403, software
7859, network
4332, telephone
8721, database

我们的目标是计算属于每种类型的所有票证(因此在这种情况下,结果应该是3个硬件,2个软件,2个网络,1个电话和1个数据库票证),命令它们desc并选择前5行结果。

我们正在尝试确定前5名“热门”或最常见的故障单类型(以及有多少种类型)。

我的计数部分已经缩减,但不知道如何继续订购desc并选择前5个。

谢谢!

2 个答案:

答案 0 :(得分:11)

在SQL Server中,您可以使用TOP选择一定数量的行以及订单,以获取正确的记录:

select top 5 type, count(*) Total
from yourtable
group by type
order by total desc

请参阅SQL Fiddle with Demo

答案 1 :(得分:0)

select * from (
    select type, count(*) 
    from table
    group by type
    order by 2 desc
)
where rownum <=5