在 MySQL 数据库中,我有一个 View (view_one),其中包含多个农田的大量植被索引。这些字段进一步分为地 block 、样线和点。
这是基本的表格设计:
测量 ID |字段 ID |情节ID |横断面 |点|植被索引_1 | ....|
我为每个地 block 的植被指数平均值及其各自的标准差创建了第二个 View 。
创建 View plot_avgs(measure_id,field_id,plot_id,avg_VI1,stddev_VI1,...
作为选择measure_id,field_id,plot_id,avg(VI1),stddev_samp(VI1),...
来自 view_one 按measure_id、field_id、plot_id 分组;
我想要的是绘图的标准差,即样本的标准差 (stddev_samp()
)。
然而,MySQL 给我的是总体的 stddev,无论使用 stddev(plot_avg)
、std(plot_avg)
、stddev_pop( plot_avg)
或 stddev_samp(plot_avg)
。
我怀疑它与我正在使用的聚合组有关。
谁能帮帮我?谢谢。
最佳答案
好吧,我自己解决了问题:
如果我使用与我打算用来创建 View 的 select ... from ... 语句完全相同的 语句,并且只需运行查询或使用它来创建表,我确实获得所需的样本标准差(图)。正如问题中所述,创建 View 时不会发生这种情况。
因此,我要做的是使用永久表而不是 View ,并在每次将新数据插入原始数据表时通过触发器更新它。
关于mysql - MySQL 中的聚合标准差没有差异吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16583764/