SQL Server 에서 rownumber 페이지 조회 의 용법 상세 설명
3926 단어 SQLServerrow number페이지 별 조회
ROW_NUMBER()
설명:결과 집합 구역 내 줄 의 시리 얼 번 호 를 되 돌려 주 고 각 구역 의 첫 줄 은 1 부터 시작 합 니 다.
ROWNUMBER () OVER ([
비고:ORDER BY 자 구 는 특정 구역 에서 행 분배 의 유일한 ROW 를 확정 할 수 있 습 니 다.NUMBER 의 순서.
파라미터:
반환 형식:bigint.
ROW_NUMBER()에서 자주 사용 하 는 몇 가지 상황
1.row 사용number()함수 가 번 호 를 매 긴 다.예 를 들 어
select email,customerID, ROW_NUMBER() over(order by psd) as rows from QT_Customer
원리:먼저 psd 에 따라 정렬 하고 정렬 한 후에 모든 데이터 에 번 호 를 매 긴 다.2.주문서 에서 가격 의 오름차 순 으로 정렬 하고 각 기록 에 정렬 코드 는 다음 과 같다.
select DID,customerID,totalPrice,ROW_NUMBER() over(order by totalPrice) as rows from OP_Order
3.각 가구 의 모든 주문 서 를 통계 하고 각 고객 이 내 린 주문 금액 에 따라 순 서 를 올 리 며 모든 고객 의 주문 에 번 호 를 매 긴 다.이렇게 하면 모든 고객 이 몇 건 을 내 릴 지 알 수 있다.그림:
코드 는 다음 과 같 습 니 다:
select ROW_NUMBER() over(partition by customerID order by totalPrice) as rows,customerID,totalPrice, DID from OP_Order
4.모든 고객 이 최근 에 내 린 주문 서 를 통계 하 는 것 은 몇 번 째 주문 이다.코드 는 다음 과 같 습 니 다:
with tabs as
(
select ROW_NUMBER() over(partition by customerID order by totalPrice) as rows,customerID,totalPrice, DID from OP_Order
)
select MAX(rows) as ' ',customerID from tabs group by customerID
5.모든 고객 의 모든 주문 에서 구 매 한 금액 이 가장 적 고 주문 을 바 꾸 는 과정 에서 고객 은 몇 번 째 로 구 매 한 것 으로 집계 한다.그림:
위의 그림:rows 는 고객 이 몇 번 째 구 매 를 하 는 지 나타 낸다.
사고방식:임시 표를 이용 하여 이 조작 을 집행 한다.
1.먼저 고객 에 따라 그룹 을 나 눈 다음 에 고객 의 주문 시간 에 따라 순 서 를 매기 고 번 호 를 매 긴 다.
2.그리고 하위 조 회 를 이용 하여 모든 고객 이 구 매 할 때의 최소 가격 을 찾 습 니 다.
3.모든 고객 의 최소 가격 을 찾 아 해당 하 는 기록 을 찾는다.
코드 는 다음 과 같 습 니 다:
with tabs as
(
select ROW_NUMBER() over(partition by customerID order by insDT) as rows,customerID,totalPrice, DID from OP_Order
)
select * from tabs
where totalPrice in
(
select MIN(totalPrice)from tabs group by customerID
)
6.고객 이 처음으로 내 린 주문 서 를 선별한다.사고의 방향.rows=1 을 이용 하여 고객 이 처음으로 내 린 주문 기록 을 조회 합 니 다.
코드 는 다음 과 같 습 니 다:
with tabs as
(
select ROW_NUMBER() over(partition by customerID order by insDT) as rows,* from OP_Order
)
select * from tabs where rows = 1
select * from OP_Order
7.rows_number()는 페이지 를 나 누 는 데 사용 할 수 있 습 니 다.사고방식:먼저 모든 제품 을 선별 한 다음 에 이 제품 들 에 대해 번 호 를 매 긴 다.그리고 where 자구 에서 여과 합 니 다.
실례
--
create proc usp_GetMyPhotos
@pageIndex int, --
@pageSize int, --
@pageCount int output --
as
declare @count int --
select @count =COUNT(*) from Photos
set @pageCount = CEILING( @count*1.0/@pageSize)
select * from
(select *,ROW_NUMBER() over(order by pid desc) as num
from Photos) as t
where num between @pageSize*(@pageIndex-1) + 1 and @pageSize*@pageIndex
8.over 등 함 수 를 사용 할 때 over 안의 그룹 과 정렬 은'where,group by,orderby'보다 늦게 실 행 됩 니 다.코드:
select
ROW_NUMBER() over(partition by customerID order by insDT) as rows,
customerID,totalPrice, DID
from OP_Order where insDT>'2011-07-22'
상기 코드 는 where 자 구 를 먼저 실행 하고 실행 한 후에 모든 기록 에 번 호 를 매 긴 다.SQL Server 의 rownumber 의 용법 에 대한 상세 한 글 은 여기까지 입 니 다.SQL Server 에서 rownumber 내용 은 저희 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 도 많은 응원 부 탁 드 리 겠 습 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Laradock에서 Laravel + SQLServer 환경 준비본 기사는 공식 문서의 신규 작성용의 프로젝트 순서에 따라, 다음의 디렉토리 구성이 된다고 가정합니다. 기본 설정 APP_CODE_PATH_HOST에 작성하려는 프로젝트 이름을 입력하십시오. SQL Server용 설...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.