小编rya*_*yan的帖子

在开窗函数中使用 Case ( OVER (Partition))

我正在尝试完成以下任务:

SELECT 
   *,
   CASE WHEN 1 THEN SUM(b.myField) ELSE AVG(b.myField) END OVER (PARTITION BY ID)
FROM tbl a
LEFT JOIN tbl2 b ON a.ID = b.aID
Run Code Online (Sandbox Code Playgroud)

这可能与 SQL Server 中的窗口函数有关吗?

我能够在没有 case 语句的情况下完成以下操作:

SELECT 
   *,
   SUM(b.myField) OVER (PARTITION BY ID)
FROM tbl a
LEFT JOIN tbl2 b ON a.ID = b.aID
Run Code Online (Sandbox Code Playgroud)

sql-server sql-server-2008 window-functions

5
推荐指数
2
解决办法
2万
查看次数