gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 03:46:50 27 4
gpt4 key购买 nike

我正在努力实现以下目标:

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

这可以通过 SQL Server 中的窗口函数实现吗?

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

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

最佳答案

你可以试试这个:

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

关于sql-server - 在开窗函数中使用 Case ( OVER (Partition)),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23936807/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com