确实存在一个行上下文,但 SUM 忽略了行上下文而仅使用筛选上下文,且筛选上下文恰恰正是整个数据库。因此正确的答案是第二个:你将得到 SalesAmount 的总计值,且在销售表的所有行均有相同值,如图所示。
SumOfSalesAmount 计算列基于整个数据库进行计算
该例子清楚地表明了这两类上下文的共同作用。两者都对公式的最终结果起作用但方式不同。聚合函数,例如 SUM、MIN 和 MAX 感知到筛选上下文所定义的范围,并完全忽略了行上下文。如果你回答(1)是很正常的,许多学生通常也是这么选的。关键在于你还没有意识到这两个上下文共同起作用并以不同的方式改变了公式结果。回答(1)是最常见和最直观的逻辑,现在你知道为什么该答案是不对的了。