본문 바로가기
SQL

MSSQL 최근데이터 1개씩만 가져오기(최상위 데이터 가져오기)

by 유반짝 2021. 9. 4.

--테이블 전체 삭제시 시퀀스 걸려있는 컬럼 0으로 초기화 해주는 쿼리

dbcc checkident(mstockadjust, reseed, 0)

 

--테이블 생성시점에 자동 시퀀스 걸어주기

CREATE TABLE [Order] (

    OrderSeq  int  IDENTITY  (0,1) NOT NULL

)

 

--테이블 생성된 이후 자동 시퀀스 걸어주기

ALTER TABLE [테이블명] ADD [컬럼명][타입] IDENTITY(초기값, 증가값, 제약조건)

ALTER TABLE [ORDER] ADD [OrderSeq][int] IDENTITY(0,0) NOT NULL

--이미 NULL값인 데이터도 자동 순번 부여되서 제약조건 NOT NULL로 해도 오류발생안함

 

--같은날짜의 여러데이터중에 최근에 입력한 데이터 1개씩만 추출해서 가져오기

--상위데이터 1개씩만 가져오기

SELECT * FROM (
                        SELECT MaterialID, Remark,
                        ROW_NUMBER() OVER (PARTITION BY MaterialID ORDER BY AdjustSeq DESC) AS AdjustSeq
                        From [MStockAdjust]
                        ) T WHERE AdjustSeq = 1

 

--ID, Remark를 묶어놓고 SEQ가 가장 높은것 1개만 추출해서 가져온다