2012-12-05 41 views
6

SQL Server 2012的计数,为了说明,选择前5

我们有一个表,像这样的:

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名“流行”或最常见的票类(以及有多少票)。

我已经得到了计数部分下降,但不知道如何与订货递减和选择第一个5

谢谢你继续!

+0

你能提供你有什么为计数部分?这可能会使得更容易提供一个答案,将更好地融入到你已经工作的 –

回答

8

在SQL Server,你可以使用TOP通过选择与订单沿一定的行数,以获得正确的记录:

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

SQL Fiddle with Demo

+0

非常有用,谢谢!标记已解决 –

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