0

次のような 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

4

1 に答える 1

0

もちろん、サブクエリでそれを行うことができます:

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

しかし、これは APL や J 言語ではありません。「次元削減操作」はありません。

于 2014-06-25T20:04:33.000 に答える