【问题标题】:Count, order desc and select top 5计数、排序并选择前 5 个
【发布时间】:2012-11-23 23:02:10
【问题描述】:

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 个。

谢谢!

【问题讨论】:

  • 你能提供你的计数部分吗?它可能更容易提供一个更好地融入你已经工作的答案

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


【解决方案1】:

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

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

SQL Fiddle with Demo

【讨论】:

    【解决方案2】:
    select * from (
        select type, count(*) 
        from table
        group by type
        order by 2 desc
    )
    where rownum <=5
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-14
      • 2020-08-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-17
      • 1970-01-01
      • 2013-04-30
      相关资源
      最近更新 更多