- PR -

日付型の項目の平均値の求め方

1
投稿者投稿内容
インスパ
大ベテラン
会議室デビュー日: 2002/08/30
投稿数: 125
投稿日時: 2005-08-31 11:50
Postgresの日付型(timestamp)のデータが複数件ありその平均を求めるSQL文はどのようにすればいいのでしょうか?
ご存知の型ご教授願います。
platini
大ベテラン
会議室デビュー日: 2002/12/03
投稿数: 193
投稿日時: 2005-08-31 12:26
select avg(FOO.ms) FROM
(
select EXTRACT(epoch FROM wktimestamp) as ms from wk_m_sabodm_curve
) FOO
これで1970-01-01 00:00:00 からの秒数
(負の数の場合もあり)の平均を算出し、それを
日付として逆算すればいいんじゃないでしょうか?

逆算するところが未検証です。上記SQLは通りました。
今川 美保(夏椰)
ぬし
会議室デビュー日: 2004/06/10
投稿数: 363
お住まい・勤務地: 神奈川県茅ヶ崎市
投稿日時: 2005-08-31 12:32
platiniさんとは別の例です。

"Test".testテーブルにtimestamp型のdtという列が存在した場合、

select current_timestamp + avg( dt - current_timestamp ) from "Test".test ;

と書けば大丈夫かな。
#一応確認はとりましたけど。

avgがIntervalを引数に取れたので、timestamp型 - timestamp型(基準値)でIntervalをとり、
その平均値をtimestamp型(基準値)に足したって状態です。

基準値としてcurrent_timestampを使いました。(^^)
platini
大ベテラン
会議室デビュー日: 2002/12/03
投稿数: 193
投稿日時: 2005-08-31 12:57
夏椰(かや)さんの処理のほうが圧倒的にスマートですね。

恐れ入りました。

インスパ
大ベテラン
会議室デビュー日: 2002/08/30
投稿数: 125
投稿日時: 2005-08-31 13:08
platiniさん夏椰(かや)さんどうもありがとうございます。
今回は夏椰(かや)さんの案で考えてみます。
1

スキルアップ/キャリアアップ(JOB@IT)