小编Zik*_*kes的帖子

如何编写对一列求和以创建离散存储桶的窗口查询?

我有一个表格,其中包含一列十进制值,例如:

id value size
-- ----- ----
 1   100  .02
 2    99  .38
 3    98  .13
 4    97  .35
 5    96  .15
 6    95  .57
 7    94  .25
 8    93  .15
Run Code Online (Sandbox Code Playgroud)

我需要完成的事情有点难以描述,所以请耐心等待。我想要做的是创建size列的聚合值,当根据value. 结果看起来像这样:

id value size bucket
-- ----- ---- ------
 1   100  .02      1
 2    99  .38      1
 3    98  .13      1
 4    97  .35      1
 5    96  .15      2
 6    95  .57      2
 7    94  .25      2
 8    93  .15      3
Run Code Online (Sandbox Code Playgroud)

我天真的第一次尝试是保持运行SUM,然后 …

sql-server-2008 sql-server aggregate window-functions

11
推荐指数
3
解决办法
4594
查看次数

保存视图时如何防止 SSMS 重写我的代码?

我正在创建一个视图,该视图使用带有WHERE类似于此子句的语句:

WHERE
    (
        col1 IS NOT NULL
        OR
        col2 IS NOT NULL
    )
    AND
    NOT EXISTS (SELECT ...)
Run Code Online (Sandbox Code Playgroud)

运行平均需要 10 秒。但是,当我尝试将此查询保存为视图时,SQL Server(或 MS SQL Server Management Studio 客户端)会“优化”查询以使用此结构,而不是:

WHERE
    (col1 IS NOT NULL AND NOT EXISTS (SELECT ...))
    OR
    (col2 IS NOT NULL AND NOT EXISTS (SELECT ...))
Run Code Online (Sandbox Code Playgroud)

将查询减慢到 6 分钟以上。有什么方法可以禁用此行为,以便视图完全使用我提供的 SQL 查询?

sql-server sql-server-2008-r2

8
推荐指数
1
解决办法
169
查看次数