SELECT x, y, z,
CASE
WHEN COUNT (PH.header_id) OVER (PARTITION BY PL.header_id)
NOT IN (null,0) THEN L_Count
ELSE COUNT (PH.header_id) OVER (PARTITION BY PL.header_id)
END as quantity
Run Code Online (Sandbox Code Playgroud)
有没有更有效的写法?
我非常清楚它在一张大桌子上执行了两次计数。
不幸的是,我无法发布查询计划,因为我正在使用的用户帐户正在等待 SHOWPLAN 权限。
NOT IN 子句是一个附带问题。感谢您提供有关改进方法的评论反馈,但问题的焦点是重复计数。