반응형
안녕하세요
코딩하는남자 코딩연습생입니다
MSSQL에서 ROW_NUMBER 함수를 이용해서 중복 데이터를 제외한 MAX의 데이만 추출 하는 방법을 설명
해볼려고 합니다
먼저 무정리된 ROW 데이터를 조회 해 볼꼐요
중요 정보는 흑백 처리 했습니다
이 조회된 데이터를 보시면 HOPPER_CART에 중복으로 많은 데이터가 있습니다
여기에 ROW_NUMBER 함수를 써서 HOPPER_CART의 데이터중에 HOPPRE_TIME의 값이 가장 높은것을이
나오도록 쿼리문 짜보겠습니다
SELECT HOPPER_CODE, HOPPER_SEQ,
HOPPER_CART, HOPPER_LOTNO,
HOPPER_JAJIL, PCARD_NO, HOPPER_TIME
FROM (
SELECT HOPPER_CODE, HOPPER_SEQ,
HOPPER_CART, HOPPER_LOTNO,
HOPPER_JAJIL, PCARD_NO, HOPPER_TIME
ROW_NUMBER() OVER(PARTITION BY HOPPER_CODE ORDER BY HOPPER_SEQ DESC) AS ROWIDX
FROM MIX_HOPPER_RFID_RESULT_TEMP WITH(NOLOCK)
) A
WHERE ROWIDX = 1
자, 이렇게 쿼리문을 작성한뒤 조회를 하면
다음과 같은 결과 값이 나오네요
HOPPER_CART별 HOPPER_TIME가 가장 높은 값으로 조회가 됩니다
물론 GROUPBY를 서브쿼리로 짜서도 같은 결과값을 만들수 있지만 서브에 서브 쿼리를 많이 다는것보다
row_number() 함수를 활용해서 좀 간결한(?) 쿼리로 GROUP BY와 같은 효과를 나타낼수 있습니다
반응형
'코딩정보 > MS-SQL' 카테고리의 다른 글
[MSSQL] MERGE를 이용한 INSERT와 UPDATE 한번에 하기 (0) | 2020.03.18 |
---|---|
[MSSQL] 테이블 인덱스 지정하기 (0) | 2019.12.19 |
[MS-SQL] VARCHAR과 NVARCHAR의 차이?? (0) | 2019.12.05 |
[MS-SQL] Split 함수 만들기!! (0) | 2019.06.12 |
[MS-SQL] 링크 서버 연결하기!! (0) | 2019.06.12 |