2016-07-31 4 views
3

모든 Id #에 대해 상위 4 번째 행을 선택하는 SQL 쿼리는 무엇입니까?SQL Server에서 최상위 네 번째 행을 선택하는 방법은 무엇입니까?

레코드의 상위 4 개 행이 아닙니다. 모든 이드에 대해 레코드/열의 4 번째 행만 선택하려고합니다. 특정 4를 얻기 위해 상단

의 당신의 정의
+0

행을 오름차순 또는 내림차순으로 정렬합니까? 출력 결과를 보여 주실 수 있습니까? –

+0

모든 청구서에는 여러 행의 거래가 있습니다. Top에서 4 번째 라인 만 골라야합니다. – goofyui

+0

MySQL을 사용하는 경우 오프셋 절을 설정하는 제한 절이 있습니다. 검색된 행 수는 –

답변

7

row_number 기능을 사용하여 행 :

SELECT * 
FROM 
    (SELECT 
     m.CityId, m.Country, m.Location, m.NoofDweller, 
     ROW_NUMBER() OVER (ORDER BY Country ASC) AS RowNumber 
    FROM 
     Cities m 
    WHERE 
     m.Country = 3 -- Just pass the required ID of the table 
    ) AS Details 
WHERE 
    RowNumber = 4 -- Gets details of the 4th row of the given ID 
1

다음과 같은 쿼리를 사용하여 테이블의 필요한 ID를 전달할 수에 따라 파티션에 의해

With cte as 
(
    select 
     *, 
     row_number() over (partition by id order by id) as rownum 
    from 
     table 
) 
select * 
from cte 
where rownum = 4 

순서 변경 :

관련 문제