PostgreSQL 9.2には、タイムスタンプを含む次のテーブルがあります。
gid [PK](bigserial)、timestamp_mes(タイムゾーンなしのタイムスタンプ)、time_diff(間隔)
1、2012-01-23 11:03:40、空
2、2012-01-23 11:03:42、空
3 2012-01-23 11:03:44、空
間隔列(time_diff)を追加し、このクエリの結果である時間差の値を入力したいと思います。
SELECT timestamp_mes - lag(timestamp_mes, 1)
over (order by timestamp_mes) as diff
from gc_entretien.trace order by timestamp_mes
次のクエリを実行してtime_diff列を更新しようとしましたが、成功しませんでした。
UPDATE gc_entretien.trace set time_diff =
(SELECT trace.timestamp_mes - lag(trace.timestamp_mes, 1)
over (order by trace.timestamp_mes)
from gc_entretien.trace order by timestamp_mes);
これにより、エラーが発生します。
エラー:式として使用されるサブクエリによって返される複数の行
時間差クエリの結果の値でtime_diff列を更新するにはどうすればよいですか?