2
ユーザーのイベントを追跡するテーブルがある場合。2つのイベント間の時間
id | user_id | action | created_at
----+---------+--------+----------------------------
5 | 1 | create | 2016-09-08 11:29:56.325691
6 | 1 | clear | 2016-09-08 11:30:00.08604
7 | 2 | create | 2016-09-08 11:30:10.12857
8 | 2 | clear | 2016-09-08 11:30:14.238685
9 | 3 | create | 2016-09-08 11:30:42.192843
clear
アクションが続く場合がありますcreate
アクションは常にあります。
CREATE TYPE user_actions AS ENUM ('create', 'clear');
は今、私は、ユーザーのcreate
とclear
間time_diffを取得するために、これら二つのアクション間の時間差を照会します。
今のところuser
に複数のエントリがないと仮定できます(たとえば、少なくとも1つはcreate
、最大値はclear
)。
私はこのような結果を持っているしたいと思います:
user_id | time_diff
---------+-----------------
1 | 00:00:03.760349
2 | 00:00:04.110115
ありがとうございます。これは素晴らしい作品で、私が探していたものです。私が理解していないことの1つは、なぜMAX()が必要なのかです。 – Mark
'GROUP BY'のために@Mark' MAX() 'が必要です。' GROUP BY'節に含まれていない 'SELECT'節のフィールドはすべて、集約関数内で使用する必要があります。 –
ありがとう、知っておいてよかった!私はこの問題を最後の数回静かにしました。今私はこれを熱望する方法を知っています - 素晴らしい!!! – Mark