【发布时间】:2010-01-02 11:09:22
【问题描述】:
我有以下 SQL 查询,可以从我的表中选择一些结果:
select avg(c3), count(c3), std
from ssims where obraz = 'lena' group by std order by std
但是我对不同的标准值执行了不同数量的测试,所以它返回给我类似的东西:
0.906176136363636;44;5
0.881669302325582;43;10
0.855873409090909;44;15
0.829195813953488;43;20
0.802071590909091;44;25
0.774523720930233;43;30
0.747213636363636;44;35
0.720115581395349;43;40
0.694712954545455;44;45
0.668683255813953;43;50
我想做的是为每个 std 值选择恒定(即 20)个结果的平均值。所以在这样的查询之后,每行的第二列将是 20。
怎么做?我尝试了limits和top,但没有成功
【问题讨论】:
-
它应该为每个标准值选择 20 行(不管是哪一行)
-
如果您只是查看一个随机子集并进行平均,那么如果您执行 20 行或更多行,这有什么关系呢?我可以看到,如果行数太少,会产生不正确的数字,但太多了?
-
不是“太少”或“太多”的情况。我需要为每种情况提供完全相同的数字。在所有比较情况下都有相同的情况,这只是科学测试的一种良好做法。
标签: sql postgresql