2017-11-21 7 views
0

私は加入後最初の24時間以内に全ユーザーが購入した金額を計算しようとしていました。私はすべてのタイムスタンプの値を持つすべてのユーザーのログの詳細を持っています。PostgreSQLに参加してから最初の24時間に費やされた金額を調べる最も良い方法

これは、テーブルがどのように見えるかです:

User_id item amount logtime 
    123 item1 1.99 2017-09-01 11:34:43 
    123 item1 1.99 2017-09-02 11:39:43 
    123 item2 2.99 2017-09-03 11:39:43 
    123 item3 4.99 2017-09-04 13:02:02 
    123 item1 1.99 2017-09-05 14:19:40 
    123 item2 2.99 2017-09-06 01:09:03 
    345 item1 1.99 2017-09-08 11:45:03 
    345 item1 1.99 2017-09-08 17:01:03 
    345 item1 1.99 2017-09-09 10:11:03 
    345 item1 1.99 2017-09-09 15:15:03 
    345 item1 1.99 2017-09-10 11:45:03 
    345 item1 1.99 2017-09-11 00:35:12 

そして、すべてのユーザーのための参加日:

User_id Join_datetime 
123  2017-09-01 11:34:43 
345  2017-09-08 11:45:03 

必要な結果

User_id First_24_hrs_amount 
123  1.99 
345  5.97 

すべてのヘルプは本当にいただければ幸いです。次のような

答えて

0

何かが

SELECT "User_id", SUM(amount) AS "First_24_hrs_amount" 
FROM log 
JOIN user USING("User_id") 
WHERE logtime < "Join_datetime" + '24 hours'::interval 
GROUP BY "User_id" 

動作するはずですあなたは私がloguserを使用するテーブル名を指定しませんでした。

関連する問題