dポイントプレゼントキャンペーン実施中!

SQL Server 2005で、調和平均を使うクエリを作りたいのです。
ExcelならばHERMEAN関数を使えば一発で出ますが、SQLにはないですよね?
CREATE FUNCTIONを使うか、クエリだけでいけるのかよくわかりません。

自分でクエリを書いてみたのですが、なにぶん初心者で、データがゼロの場合にエラーになったりしてうまくいきません。

どうすれば一番簡単に作れるでしょうか。

A 回答 (2件)

計算式をベタ書きすれば良いのでは。

こんな感じ:

select (abs(sgn( V1 )) +abs(sgn( V2 )) + abs(sgn( V3 ))) / (case V1 when 0 then 0 else 1/V1 end+case V2 when 0 then 0 else 1/V2 end+case V3 when 0 then 0 else 1/V3 end) where T

1列分に射影した表をunionすれば、AVG()が使えるかも。
    • good
    • 0
この回答へのお礼

何度もお世話になります。
ベタ書きでうまくいきそうです。

ただ、こういう計算をする場合、元テーブルの各項目が整数定義になっているとエラーになりますね。

テーブルを作り直す必要が出てきそうです。(^^;)

回答をありがとうございました。

お礼日時:2006/12/19 19:20

調和平均は、逆数の平均の逆数ですので、テーブルT項目Vの調和平均なら、



select 1/avg( 1/V ) from T where v<>0;

――でダメかな?

この回答への補足

あぁぁ~、ごめんなさい。
説明不足でした。

全レコードの1項目ずつをとるのではなく、
1レコードの複数項目の調和平均をとりたいのです。

つまり、クエリの結果が、
項目1,項目2,項目3,項目1~3の調和平均
となるようにしたいのです。

補足日時:2006/12/19 12:16
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!