有一个存放病毒的表 Virus 病毒名为VirusName
收集机器上所有病毒存在此表中 同一个病毒A 可能有很多条记录
要查询最多的5种病毒之外的所有病毒总数? (C病毒如果有10个就记录10 在加D的 等等) 
下面这条是我查询前最多5条的病毒数,其实我就是想把5条之后的做为其他病毒汇总 
select top 5 count(VirusName) as ge ,VirusName from Virus group by VirusName order by ge desc

解决方案 »

  1.   

    select count(*)
    from virus
    where virusname not in(select top 5 virusname from virus group by virusnam order by count(1) desc)
      

  2.   

    select * from Virus where VirusName not in( select top 5  VirusName from Virus group by VirusName order by count(VirusName))
      

  3.   

    谢谢 你的是对的 可以告诉我  order by count(1) desc 是什么意思么 count(1)没有见过
      

  4.   

    Select 1 from VirusName 
    相當于增加一個列
      

  5.   

    select count(*)-5 from virus
    是不是开发的时候思路阻塞?最多的5种病毒之外的所有病毒总数不就是所有病毒-5嘛?费这么大的劲!
    还有楼上两个,一样没经过大脑
      

  6.   

    group by XXX order by count(1) 就是根据分组后每组数量排序