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

グループが繰り返されるグループの行番号をインクリメントします

    行番号の違いを使用して、グループを定義できます。

    select Shade, count(*) as amount
    from (select t.*,
                 row_number() over (order by level) as seqnum,
                 row_number() over (partition by shade order by level) as seqnum_s
          from t
         ) t
    group by Shade, (seqnum - seqnum_s);
    

    これが機能する理由を説明するのは少し難しいです。サブクエリの結果を見ると、2つのrow_number()の違いがなぜであるかが明らかになります。 値は順次グループを識別します。




    1. MySQLのタイムスタンプへの文字列

    2. SQL-小数点以下の数字のみを取得するにはどうすればよいですか?

    3. Docker上のPostgreSQL: `plpython3u`の下でPythonの依存関係をインストールして実行する方法は?

    4. MySQLルートパスワードをリセットする方法