【发布时间】:2011-02-08 23:03:44
【问题描述】:
我有一个使用 SQL 2005 返回正确结果集的查询。如下:
选择 案子 当 convert(varchar(4),datepart(yyyy,bug.datecreated),101)+ 'Q' +convert(varchar(2),datepart(qq,bug.datecreated),101) = '1969 Q4' 然后 '2009 Q2' else convert(varchar(4),datepart(yyyy,bug.datecreated),101)+ 'Q' +convert(varchar(2),datepart(qq,bug.datecreated),101) 以 [季度] 结尾, bugtypes.bugtypename, 计数(bug.bugid)作为[总计] 从 bug 左外连接 bug.crntbugtypeid = bugtypes.bugtypeid 和 bug.projectid = bugtypes.projectid 在哪里 (bug.projectid = 44 和 bug.currentowner 在 (-1000000031,-1000000045) 和 (42,37,25,14) 中的 bug.crntplatformid) 要么 (bug.projectid = 44 和 bug.currentowner in (select memberid from groupmembers where projectid = 44 and groupid in (87,88)) 和 (42,37,25,14) 中的 bug.crntplatformid) 通过...分组 案子 当 convert(varchar(4),datepart(yyyy,bug.datecreated),101)+ 'Q' +convert(varchar(2),datepart(qq,bug.datecreated),101) = '1969 Q4' 然后 '2009 Q2' else convert(varchar(4),datepart(yyyy,bug.datecreated),101)+ 'Q' +convert(varchar(2),datepart(qq,bug.datecreated),101) 结尾, bugtypes.bugtypename 按 1,3 desc 订购它会生成一个很好地分组的年份和季度列表、一个关联的描述符以及按降序排列的事件计数。我想做的是进一步过滤它,使其仅显示每季度提交次数最多的 10 个事件。
我正在苦苦挣扎的是如何获取这个结果集并实现它。
【问题讨论】:
-
可能按第 3 列(总计)降序排序并添加一个类 WHERE ROWNUM
-
在哪里以及如何,我不想要只十条记录。我想要每个季度 10 条记录。
标签: sql sql-server filter