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

連続する行のサブセットの最小値と最大値を検索します-ギャップとアイランド

    類似した行の連続したグループを見つけてから、集計したいとします。行番号の違いのアプローチが好きです:

    select name, act, min(startt) as startt, max(endd) as endd
    from (select i.*,
                 row_number() over (partition by name, act order by rn) as seqnum_na,
                 row_number() over (partition by name order by rn) as seqnum_n
          from input i
         ) i
    group by (seqnum_n - seqnum_na), name, act;
    

    サブクエリの機能を確認することで、これがどのように機能するかを確認できます。



    1. 変数の値をmysqlクエリに取得する際の問題

    2. Exam、Unpaid、Annualなどの休暇タイプに基づいてmysqlデータベースからデータをフェッチします

    3. PHPを使用して各登録ユーザーに独自のURLを与えるにはどうすればよいですか?

    4. MariaDBサーバー10.3での自動データバージョン管理