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

イベントタイプデータに基づいて行を入力する方法

    仮定:

    • Postgresを実行しています

    • 特定の顧客は常にテーブルに正確に2つの行を持っています

    • hour 日付のようなデータ型です

    次に、1つのオプションはgenerate_series()を使用することです 次のように、横方向の結合を使用します:

    select t.customer_id, x.hour
    from (
        select customer_id, min(hour) min_hour, max(hour) max_hour 
        from mytable 
        group by customer_id
    ) t
    cross join lateral generate_series(min_hour, max_hour, '1 hour') x(hour)
    order by t.customer_id, x.hour
    

    DBFiddldeのデモ

    customer_id | hour               
    :---------- | :------------------
    X           | 2019-04-01 13:00:00
    X           | 2019-04-01 14:00:00
    X           | 2019-04-01 15:00:00
    X           | 2019-04-01 16:00:00
    X           | 2019-04-01 17:00:00
    Y           | 2019-04-01 17:00:00
    Y           | 2019-04-01 18:00:00
    Y           | 2019-04-01 19:00:00
    



    1. ストップワードとMySQLブールフルテキスト

    2. Javaを使用してMySQLAmazonRDS(SSL / TLS)への安全な接続を確立する

    3. 相互の友人のためのMySQLクエリ

    4. 奇妙で迷惑なエラー:未定義の関数mysql_query()の呼び出し