0
그룹화 된 데이터를 페이지 매김하고 싶지만 페이지 당 제한된 수의 행 (결과가 아님) 만 표시 할 수있는 제한이 있습니다.SQL에서 페이지가 매겨진 그룹화 된 데이터를 생성하는 방법
예를 들어, 20 개 행의 각 페이지에는 하나 이상의 결과 그룹이 표시됩니다.
- 군
여러 페이지 기 스팬의 결과는 '그룹 제목 경우 각 결과의 그룹 제목을
지금까지 union
결과 및 그룹 제목은 페이지를 쉽게 열 수있는 행 테이블을 구성 할 수 있도록 정렬되었습니다. 나는 SQL에서 실종 무엇
select * from (
select f.Id, f.Name, p.Id As ProviderId, 2 as RowType,
'Result' as RowTypeTitle
from Fund f
inner join Provider p on f.ProviderId = p.Id
union
select distinct f2.ProviderId as Id, p2.Name, f2.ProviderId, 1 as RowType,
'Group Title' as RowTypeTitle
from Fund f2
inner join Provider p2 on f2.ProviderId = p2.Id
) u
order by u.ProviderId, u.RowType asc
위의 예를 들어 내가 페이지 당 20 '행'을 반환해야 중복 '그룹 제목'행입니다. 어떻게 SQL을 리팩터링하여 이들을 통합 할 수 있습니까?
나는 이것을 실행했으며 그룹화 된 'rowid'열을 추가하는 것으로 보입니다. 이건 내가 진짜로 한 일이 아니야. 그룹 제목 행을 20 행마다 추가하고 각 그룹의 시작 부분에 결과를 그룹화해야합니다. – Digbyswift
테이블 정의 및 데이터가 없기 때문에 havent는 정확히 쿼리를 시도했습니다. ROW_NUMBER를 사용하면 가지고있는 행 수에 따라 0에서 99999까지의 ROWID를 가질 수 있습니다. 그렇지 않다면 "PARTITION BY"를 바꾸면 작동하는 것을 볼 수 있습니다. 그런 다음, "where u.ROW_ID between 0 and 20"을 20과 40 사이에서 변경합니다. –
스키마는 기금과 제공자 간의 직접적인 관계와 일대일 관계이므로 쉽게 설정할 수 있어야합니다. 귀하의 스크립트를 실행하고 그것은 내가 질문에 무엇을 요구하지 않습니다. 또한 답안에서 제시해야 할 것을하지 않습니다. – Digbyswift