我有一個返回正確的結果集的查詢,使用SQL 2005年,是如下:進一步篩選SQL結果
select case when convert(varchar(4),datepart(yyyy,bug.datecreated),101)+ ' Q' +convert(varchar(2),datepart(qq,bug.datecreated),101) = '1969 Q4' then '2009 Q2' else convert(varchar(4),datepart(yyyy,bug.datecreated),101)+ ' Q' +convert(varchar(2),datepart(qq,bug.datecreated),101) end as [Quarter], bugtypes.bugtypename, count(bug.bugid) as [Total] from bug left outer join bugtypes on bug.crntbugtypeid = bugtypes.bugtypeid and bug.projectid = bugtypes.projectid where (bug.projectid = 44 and bug.currentowner in (-1000000031,-1000000045) and bug.crntplatformid in (42,37,25,14)) or (bug.projectid = 44 and bug.currentowner in (select memberid from groupmembers where projectid = 44 and groupid in (87,88)) and bug.crntplatformid in (42,37,25,14)) group by case when convert(varchar(4),datepart(yyyy,bug.datecreated),101)+ ' Q' +convert(varchar(2),datepart(qq,bug.datecreated),101) = '1969 Q4' then '2009 Q2' else convert(varchar(4),datepart(yyyy,bug.datecreated),101)+ ' Q' +convert(varchar(2),datepart(qq,bug.datecreated),101) end, bugtypes.bugtypename order by 1,3 desc
它生產的年和季度的一個很好的分組名單,相關的描述符,以及按降序計數的事件計數。我想要做的就是進一步過濾,以便每個季度只顯示10個最常提交的事件。
我正在努力的是如何採取這個結果集,並實現這一點。
也許爲了通過柱3(總計)和降序添加一個類WHERE ROWNUM <= 10(如果甲骨文)或LIMIT 10如果MySQL? – 2010-04-16 18:22:07
使用SQL Server 2005 – 2010-04-16 18:30:10
那將是前10名 – BlackICE 2010-04-16 18:30:46