最小值超过一维,然后最大值超过另一维度

时间:2014-06-25 19:59:53

标签: sql table-statistics

我有一个如下所示的SQL表:

i       j       x
0       0       0.5
0       1       1.0
0       2       1.5
1       0       1.4
1       1       1.3
1       2       1.2

等等。我想取j维上的平均值,然后取i维上的最小值。在这种情况下,取j维上的平均值会产生以下结果:

i       x
0       1.0
1       1.3

i维上的最小值,然后产生值1.0,这是最终结果。是否有一种有效的方法来执行像本例中的查询,即查询,其中按指定的顺序执行一系列降维操作?

请注意,如果我们颠倒操作顺序,则中间结果为

j       x
0       0.5
1       1.0
2       1.2

j维度的平均值会产生0.9的最终结果。因此,操作的顺序很重要。

菲利普

http://phillipmfeldman.org

1 个答案:

答案 0 :(得分:0)

当然,您可以使用子查询来执行此操作:

SELECT MIN(avg_over_j) FROM (
   SELECT i, AVG(x) AS avg_over_j
   FROM TheTable 
   GROUP BY i
)

但这不是APL或J语言;没有“降维操作”。