sql >> データベース >  >> RDS >> PostgreSQL

日付でシーケンスし、サブクエリを使用してpostgresqlの前と後の日付を追加します

    ウィンドウ関数 を使用します 。

    select 
        *, 
        lag(timestamp) over wa time_prev, 
        lead(timestamp) over wa time_next,
        to_char(timestamp, 'yyyymmdd') || to_char(row_number() over wd, 'fm0009') time_sequence
    from db1
    window 
        wa as (partition by vehicle_id order by objectid),
        wd as (partition by vehicle_id, timestamp::date order by objectid);
    
    
     objectid | vehicle_id |      timestamp      |      time_prev      |      time_next      | time_sequence 
    ----------+------------+---------------------+---------------------+---------------------+---------------
            1 |          1 | 2009-06-01 11:57:43 |                     | 2009-06-01 11:09:16 | 200906010001
            4 |          1 | 2009-06-01 11:09:16 | 2009-06-01 11:57:43 | 2009-06-01 10:16:28 | 200906010002
            6 |          1 | 2009-06-01 10:16:28 | 2009-06-01 11:09:16 | 2009-06-01 09:33:01 | 200906010003
           11 |          1 | 2009-06-01 09:33:01 | 2009-06-01 10:16:28 | 2009-06-01 11:30:19 | 200906010004
           12 |          1 | 2009-06-01 11:30:19 | 2009-06-01 09:33:01 |                     | 200906010005
            2 |          2 | 2009-06-01 10:42:19 |                     | 2009-06-01 11:02:23 | 200906010001
            3 |          2 | 2009-06-01 11:02:23 | 2009-06-01 10:42:19 | 2009-06-01 10:32:19 | 200906010002
            7 |          2 | 2009-06-01 10:32:19 | 2009-06-01 11:02:23 | 2009-06-01 09:20:31 | 200906010003
            9 |          2 | 2009-06-01 09:20:31 | 2009-06-01 10:32:19 | 2009-06-01 11:56:23 | 200906010004
           13 |          2 | 2009-06-01 11:56:23 | 2009-06-01 09:20:31 |                     | 200906010005
            5 |          3 | 2009-06-01 11:56:47 |                     | 2009-06-01 10:52:19 | 200906010001
            8 |          3 | 2009-06-01 10:52:19 | 2009-06-01 11:56:47 | 2009-06-01 11:06:39 | 200906010002
           10 |          3 | 2009-06-01 11:06:39 | 2009-06-01 10:52:19 |                     | 200906010003
    (13 rows)
    



    1. Zend_Dbで複数の行を追加するにはどうすればよいですか?

    2. より良いPHP、MySql、HTMLおよびJavaScript IDE

    3. Magentoのローカルコピーにログインできません-ソフトウェアのローカルコピーで紛失したパスワードを使用するにはどうすればよいですか?

    4. mysqlにchar型の外部キーを追加する