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

SQLで連続する重複値をカウントする

    idだと思います ユニークで増加しています。異なる行番号を使用して、連続する値のカウントを取得できます。以下はすべてのシーケンスをカウントします:

    select grp, value, min(id), max(id), count(*) as cnt
    from (select t.*,
                 (row_number() over (order by id) - row_number() over (partition by value order by id)
                 ) as grp
          from table t
         ) t
    group by grp, value;
    

    0の最長シーケンスが必要な場合:

    select top 1 grp, value, min(id), max(id), count(*) as cnt
    from (select t.*,
                 (row_number() over (order by id) - row_number() over (partition by value order by id)
                 ) as grp
          from table t
         ) t
    group by grp, value
    having value = 0
    order by count(*) desc
    


    1. 日付だけでなく、Javaを使用して完全な日付と時刻のSQLを設定するにはどうすればよいですか?

    2. postgres json列のネストされた配列をクエリする方法は?

    3. タイプPDOStatementのオブジェクトを配列として使用できません

    4. ScaleGridは、スポットライトエクイティパートナーから成長エクイティラウンドを引き上げ、拡張を加速し、製品ロードマップにさらに投資します