2017-02-21 7 views
0

私は自分のGROUP BY関数を作成したいと思っています。 GROUP BYで使用できるAVG()やSUM()関数のように、各グループの値から平均値と合計値を計算すると、値を使って何かを計算する独自の関数を作成できますグループ。 Σx^ 2/nを計算するMYFN()関数を作成したいとしましょう(xはグループ内の値であり、グループ内のn個の値です)。この関数の使用法は次のようになります。私自身のGROUP BY関数

SELECT mygroup,MYFN(x) 
FROM mytable 
GROUP BY mygroup 
ORDER BY 2 DESC 

これを行う方法は?

+0

あなたが説明した機能を使用して、小さなくすみのデータと希望の結果を投稿してください。それは、値のグループでそのような関数を評価する方法は私には明らかではない – Aleksej

+1

[この回答](http://stackoverflow.com/questions/21499796/product-aggregate-function)は、カスタムグループのOracleのメソッドに関するいくつかの情報を持っています機能。 –

答えて

1
SELECT mygroup, sum(ColFun) As ColFun FROM 
(
    SELECT mygroup,MYFN(x) As ColFun FROM mytable 
)Y 
GROUP BY mygroup 
+1

関数SUMはなぜここで使用されますか? –

+0

@sbrbot want関数AVG()またはSUM()と似ています。 –