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

NULL値で正しく機能するpostgresqlの最初と最後の値の集計関数

    ウィンドウ関数 lead()を使用できます。 およびlag() たとえば、最初と最後のレコードを確認するには:

    select
        max(a.id) as id,
        max(a.first) as first,
        max(a.last) as last
    from (
        select
             v.id,
             case when lag(v.id) over(order by v.id, p.install_date) is null then p.install_date end as first,
             case when lead(v.id) over(order by v.id, p.install_date) is null then p.remove_date end as last
        from vehicle v 
           left join period p on (v.id = p.car_id) 
        where v.id = 1 
    ) as a
    

    sqlフィドルデモ



    1. SQL Serverで「datetime2」を「datetimeoffset」に変換します(T-SQLの例)

    2. MySQLで先頭の空白を削除する方法

    3. テーブル変更エラーを回避する方法

    4. MySQLサンプルデータベース