如何优化下面的sql查询
我有一个后端限制,即十进制类型(aban)的结果列中不能包含超过1000个字符 如何优化此查询 我尝试过使用诱惑,但结果并不像预期的那样如何优化下面的sql查询,sql,sql-query-store,Sql,Sql Query Store,我有一个后端限制,即十进制类型(aban)的结果列中不能包含超过1000个字符 如何优化此查询 我尝试过使用诱惑,但结果并不像预期的那样 aban = CASE WHEN ( sum(isnull(a.callshandled,0)) + sum(isnull(a.totalcallsaband,0)) + sum(isnull(a.incompletecalls,0)) + sum(isnull(a.returnbusy,0)) + sum(isnull(a.returnring
aban =
CASE
WHEN (
sum(isnull(a.callshandled,0)) + sum(isnull(a.totalcallsaband,0)) + sum(isnull(a.incompletecalls,0)) + sum(isnull(a.returnbusy,0)) + sum(isnull(a.returnring,0)) + sum(isnull(a.icrdefaultrouted,0)) + sum(isnull(a.ndr,0)) + sum(isnull(a.overflowout,0)) + sum(isnull(a.callsrona,0)) + sum(isnull(a.returnrelease,0)) + sum(isnull(a.callsroutednonagent,0)) + sum(isnull(a.shortcalls,0)) + sum(isnull(a.agenterrorcount,0)) + sum(isnull(a.errorcount,0))
)
= 0 THEN
0
ELSE (sum(isnull(a.totalcallsaband,0)) * 1.0) / (sum(isnull(a.callshandled,0)) + sum(isnull(a.totalcallsaband,0)) + sum(isnull(a.incompletecalls,0)) + sum(isnull(a.returnbusy,0)) + sum(isnull(a.returnring,0)) + sum(isnull(a.icrdefaultrouted,0)) + sum(isnull(a.networkdefaultrouted,0)) + sum(isnull(a.overflowout,0)) + sum(isnull(a.callsrona,0)) + sum(isnull(a.returnrelease,0)) + sum(isnull(a.callsroutednonagent,0)) + sum(isnull(a.shortcalls,0)) + sum(isnull(a.agenterrorcount,0)) + sum(isnull(a.errorcount,0)))
END
,
优化查询时,公式中的字符数应小于1000,查询优化前后结果列的值应相同。请尝试以下方法:
DECLARE @dividend int = 10;
DECLARE @divisor int = 0;
SELECT COALESCE(@dividend / NULLIF(@divisor,0), 0);
所以你们可以避免重复计算除数。这是一个很好的开始,当你们问一些问题时。@AbhishekRai。您尚未显示查询。你表现出一种表情。如果没有表达式所在查询的上下文,通常无法对其进行优化。