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

ウィンドウ関数を使用してPostgresテーブルのパーティションのグループを列挙するにはどうすればよいですか?

    パーツの累積合計よりも1多いものが必要なようです。最も簡単な方法は次のとおりです。

    select t.*,
           (case when part = 1 then 0  -- the easy case
                 else 1 + sum(part) over (order by id)
            end) as number
    from t;
    

    partの場合 0と1以外の値を取ることができます:

    select t.*,
           (case when part = 1 then 0  -- the easy case
                 else 1 + sum( (part = 1)::int ) over (order by id)
            end) as number
    from t;
    


    1. 存在していてもドロップキーをカントします:エラーコード:1091

    2. SQL Server 2008 がロング トランザクションの INSERT で SELECT をブロックするのはなぜですか?

    3. postgresqlで整数を集約する方法は?

    4. 選択直後のPHPDELETE