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

番号欄を変更

    これはギャップと島の問題です。

    1つのアプローチ。 SQLフィドル

    WITH T1
         AS (SELECT *,
                    ROW_NUMBER()
                      OVER (
                        PARTITION BY NAME
                        ORDER BY DATE) - ROW_NUMBER()
                                           OVER (
                                             PARTITION BY NAME, [PAY]
                                             ORDER BY DATE) AS Grp
             FROM   Table1),
         T2
         AS (SELECT *,
                    MIN(DATE)
                      OVER (
                        PARTITION BY NAME, Grp) AS MinDate
             FROM   T1)
    SELECT [NAME],
           [PAY],
           [DATE],
           DENSE_RANK()
             OVER (
               PARTITION BY NAME
               ORDER BY MinDate) AS CHANGEGROUP
    FROM   T2
    ORDER  BY NAME,
              MinDate 
    



    1. MySqlでEF移行を使用できますか

    2. PHPおよびMySQLデータベースでブログを作成する方法-管理者の投稿

    3. MariaDB JSON_VALUE()とJSON_QUERY():違いは何ですか?

    4. MYSQlはコメント付きのブログ投稿のテーブルを最適化します