当表仅包含一行时,StDev() 函数返回 Null

Posted

技术标签:

【中文标题】当表仅包含一行时,StDev() 函数返回 Null【英文标题】:StDev() function returns Null when table contains only one row 【发布时间】:2014-01-05 17:58:51 【问题描述】:

我正在尝试使用 StDev 函数并得到空白结果。我将它用作...

SELECT StDev(fldMean) FROM myTable

其中 fldMean 包含 2.3 的值,应该评估为 0,但我只是得到一个空结果。我似乎无法理解如何在函数中使用表达式,微软的手册真的没有帮助。

【问题讨论】:

fldMean 的数据类型是什么?您的查询是正确的,或者类型有问题,或者如果只有 1 行,StDev 不起作用 [myTable] 有多少行? 这就是问题所在,将我的数据集缩小到只有一行的程度。 【参考方案1】:
SELECT StDev(fldMean) FROM myTable

如果 [myTable] 只有一行,则将返回 Null,因为无法从单个观察值计算标准偏差。您需要在该表中至少有两行才能收到有意义的结果。如果你想强制 Null 值为零,你可以使用

SELECT Nz(StDev(fldMean), 0) FROM myTable

【讨论】:

以上是关于当表仅包含一行时,StDev() 函数返回 Null的主要内容,如果未能解决你的问题,请参考以下文章

SQL Server报错:选择列表中的列无效,因为该列没有包含在聚合函数或 GROUP BY 子句中

Python中 appendextendinsertadd 区别

Snowflake 中的返回类型“Table”问题

当表中有指定范围内的数据时返回布尔值

当表有 42 个字段时,为啥 .NET 中的 MS Access adodb 在字段计数中返回 34?

当表 laravel 5.8 中没有数据时,null 返回总和而不是 0