none
連続した整数値のグルーピング RRS feed

  • 質問

  • 以下の様なテーブルから、連続した整数値(ID列)でグルーピングし、別の列(VALUE列)の最小値を取得したいのですが、どのようなSQL文にすればよいか教えてください!
    (IDは最小値や最大値などの代表値が知りたいです。)

    ID VALUE
    50 19.15
    51 7.455
    52 7.455
    55 14.22
    56 11.51
    57 0.309
    58 23.48

    上記のデータの場合、以下の結果を得るSQL文が判らず困っています。

    ID_MIN VALUE_MIN
    50 7.455
    55 0.309

    よろしくお願いします!

    2018年10月4日 9:05

回答

  • 自己解決しました!
    ROW_NUMBERで行番号を振って、行番号とIDの差でグルーピングしたら行けました!

    SELECT MIN(ID), MIN(Val)
    FROM (
    SELECT ROW_NUMBER() OVER(ORDER BY ID ASC) AS RowNum, Val
    FROM Tbl
    ) T
    GROUP BY (RowNum - ID)

    2018年10月4日 10:10