我有一个如下所示的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的最终结果。因此,操作的顺序很重要。
菲利普
答案 0 :(得分:0)
当然,您可以使用子查询来执行此操作:
SELECT MIN(avg_over_j) FROM (
SELECT i, AVG(x) AS avg_over_j
FROM TheTable
GROUP BY i
)
但这不是APL或J语言;没有“降维操作”。