【发布时间】:2012-08-07 08:24:45
【问题描述】:
我有一个如下所示的跟踪表
我想得到一个运行总计,它看起来像以下输出 - 保留订单非常重要 - 因为这是存储的 porcedures 的执行顺序 - 这将帮助我分析系统中的瓶颈
我试过了
select max(RowNumber),objectname, count(1) from rob
where eventclass = 42
group by objectname
但这会破坏订单
这在 SQL 中是否可行?
更新: 我试过这个
select RowNumber,objectname, count(1) from rob
where eventclass = 42
group by objectname,RowNumber
order by RowNumber
但是这个(因为查询非常正确地说按行号分组(必须有它才能按顺序排列))
【问题讨论】:
-
除非明确指定,否则没有顺序。是maya。
-
顺序是原始表中的行号 - 我已经用按部分排序的查询更新了问题
-
您想通过计算具有相同对象名的相邻(按行号)记录来压缩跟踪表吗?如果是这样,您使用的是哪个版本的 Sql Server?
-
+1 是的,这就是我在下面的答案完美之后的那种 - 我有 SQL 2005 分析器,但数据库的 2008 快速版本:(
标签: sql-server sql-server-2008 query-optimization