我刚刚发现了CROSS APPLY运算符,并且在操作派生列进行计算时非常有用。TSQL交叉应用与计数和总和
所以,我试过如下:
SELECT leadYear,TotalLeadsCalled,SuccessLeadsCalled,SuccessLeadsPercent
FROM dbo.tblBinOutboundCallActivity
CROSS APPLY(VALUES (YEAR(leadactivitydate))) AS a1(leadyear)
CROSS APPLY(VALUES (COUNT(leadStatusID))) AS a2(TotalLeadsCalled)
CROSS APPLY(VALUES (COUNT(CASE WHEN leadStatusID = 2 THEN 1 ELSE NULL END))) AS a3(SuccessLeadsCalled)
CROSS APPLY(VALUES (SUM((SuccessLeadsCalled/TotalLeadsCalled)*100))) AS a4(SuccessLeadsPercent)
GROUP BY leadYear
,但我得到了以下错误:
Aggregates on the right side of an APPLY cannot reference columns from the left side.
我真的不理解的错误,尤其是在第一跨应用的实际工作中隔离。我刚刚得到了完全错误的概念吗?