0

在 MySQL 数据库中,我有一个视图 (view_one),其中包含多个农田的许多植被指数。这些领域进一步分为地块、样带和点。

这是基本的表格设计:

measure_id | 字段 ID | plot_id | 样带 | 点 | 植被索引1 | .... |

我为每个地块的植被指数平均值及其各自的标准偏差创建了第二个视图。

create view plot_avgs (measure_id, field_id, plot_id, avg_VI1, stddev_VI1, ... as select measure_id, field_id, plot_id, avg(VI1), stddev_samp(VI1), ... from view_one group by measure_id, field_id, plot_id;

我想要的是图的标准偏差,因此是样本 ( stddev_samp())。

然而,MySQL 给我的是人口的 stddev,无论使用stddev(plot_avg)、或.std(plot_avg)stddev_pop(plot_avg)stddev_samp(plot_avg)

我怀疑它与我正在使用的聚合组有关。

谁能帮帮我?谢谢。

4

1 回答 1

0

好的,我自己解决了问题:

如果我使用与as select ... from ...我打算用来创建视图的语句完全相同的语句,并且只是运行查询或使用它来创建表,我确实得到了所需的样本标准偏差(绘图)。如问题中所述,创建视图时不会发生这种情况。

所以我要做的是使用永久表而不是视图,并在我将新数据插入原始数据表时通过触发器对其进行更新。

于 2013-06-10T11:35:56.217 回答