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

SQL Server 2012 での島の番号付け

    それらに番号を付けたい場合は、 lag() をお勧めします 累積合計:

    select t.*,
           sum(case when datefrom = dateadd(day, 1, prev_dateto
                    then 0 else 1
               end) over (order by itemId, datefrom)
    from (select t.*,
                 lag(dateto) over (partition by itemid order by datefrom) as prev_dateto
          from table t
         ) t;
    

    case 新しい島が始まる場所を決定します。累積合計は、このフラグを合計するだけです。



    1. CSVをインポートするときのphpでの未定義のオフセットエラー

    2. パラメータ化されたクエリ

    3. MySQLWorkbenchのショートカットでステートメントを実行する

    4. nodejsデータベースを介してローカルでPostgreSQLに接続できず、Macで突然動作を停止しました