在MySQL数据库中,我有一个视图(view_one),其中包含多个农业领域的植被指数。这些字段进一步分为图,横断面和点。
这是基本的表格设计:
measure_id | field_id | plot_id |横断面|点| vegetation_index_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)
。
我怀疑它与我正在使用的聚合有关。
谁能帮助我?感谢。
答案 0 :(得分:0)
好的我自己解决了问题:
如果我使用与我打算创建视图的完全相同的as select ... from ...
语句,并且只是运行查询或使用它来创建表格,我确实得到了样本的所需标准偏差(绘图) )。如问题中所述,创建视图时不会发生这种情况。
所以我要做的是使用永久表而不是视图,并在我将新数据插入原始数据表时通过触发器更新它。