7

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 个数据库票证),将它们按顺序排列并选择前 5 个结果行。

我们正在尝试确定前 5 种“流行”或最常见的门票类型(以及有多少)。

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

谢谢!

4

2 回答 2

12

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

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

请参阅带有演示的 SQL Fiddle

于 2012-12-06T00:06:55.860 回答
1
select * from (
    select type, count(*) 
    from table
    group by type
    order by 2 desc
)
where rownum <=5
于 2012-12-06T00:05:34.980 回答