我有一个简单的数据记录表,其中包含两个数据列 A 和 B,我想为其生成 A+B 的总和。但是,A 和 B 中的一个或两个都可以为空。该表还有一个时间戳列,它是主键
我可以看到几种给这只猫剥皮的方法,但我很想知道在一系列时间戳上汇总数据的首选方法是什么:
1. SUM(Coalesce(A,0)+Coalesce(B,0))
2. SUM(Coalesce(A+B,A,B,0))
3. Coalesce( Sum(A), 0) + Coalesce( SUM(B), 0)
我从执行计划程序中得到以下结果:
Form Select Compute Scalar Stream Aggregate Compute Scaler Clustered Index Seek 1 0% 0% 11% 1% 87% 2 0% 0% 11% 1% 87% Form Select Compute Scalar Compute Scaler Stream Aggregate Clustered Index Seek 3 0% 0% 0% 12% 88%
我以前从未深入研究过查询计划,所以我不确定如何解释这些数字。公平地说,一般来说,总体百分比偏向右侧越多越好吗?使表格 3 优于表格 1 和表格 2?