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

ROW_NUMBER() OVER (PARTITION BY ...) の使用に関する問題

    私なら次のようにします:

    ;WITH x AS (SELECT *, Row_number() OVER( partition BY employeeid ORDER BY datestart) rn FROM employeehistory) SELECT * FROM x x1 LEFT OUTER JOIN x x2 ON x1.rn =x2.rn + 1   

    または、x2.rn - 1 になるかもしれません。確認する必要があります。いずれにせよ、あなたはアイデアを得る。テーブルを結合したら、フィルター、グループ化、並べ替えなどを行って、必要なものを取得できます。



    1. OracleのROWIDTONCHAR()関数

    2. PostgreSQLの間隔から特定の曜日(週末)の数を取得する

    3. 各グループの最初のレコードのリストを取得します

    4. Oracle / SQL:クエリSELECT*FROMレコードWHERErownum>=5 AND rownum<=10-ゼロ行を返すのはなぜですか