0
나는 다음과 같다 오라클 11g 데이터베이스에서 테이블을 가지고 :오라클 그룹 및 피벗
ownerid | propertyid | name
--------------------------------------
1 | 1000001 | SMITH MARY
2 | 1000001 | SMITH JOHN
3 | 1000002 | HUGHES JANE
4 | 1000003 | CHEN ALICE
5 | 1000003 | MCCOY ELLIS
이처럼 보이도록 내가 컬럼에 행을 그룹에 propertyid
에 테이블을 시도하고 피벗있어 이 :
propertyid | owner1 | owner2
---------------------------------------------
10001 | SMITH MARY | SMITH JOHN
10002 | HUGHES JANE | <null>
10003 | CHEN ALICE | MCCOY ELLIS
각 속성은 1 ~ 3 소유자를 가질 수 있습니다,하지만 난 ownerid
주문할 때 나타나는 바와 같이, 제 1 두에만 관심이 있어요.
가장 좋은 해결책은 "첫 번째"소유자와 "두 번째"소유자 중 하나 인 두 개의 하위 쿼리를 만드는 것입니다. 다음과 같이 나는 nth_value
기능을 사용 :
-- first owners
select
propertyid,
nth_value(name, 1) over (partition by propertyid order by ownerid) as owner_1
from owners
을하지만이 날 중복 특성과 소유자의 (정확하지만) 쌍 소유자의 총 수는 더 나은이 있어야합니다 같은 느낌 일반적으로 1보다 큰 경우 제공 이것을하는 방법. 누구든지 아이디어가 있습니까?
위 예제는 훌륭하게 작동했으며,'inputs' =>'prep' => 작업 패턴을 좋아합니다. 나는 그들이 실제로 오라클 함수라고 생각하면서 잠시 동안 인터넷 검색을하고 있음을 인정해야하지만 :) 감사합니다! – Rob
lol 나는 올바른 답을 찾길 바래 (WITH 절, CTE, 하위 쿼리를 고려함 ...) 나는 일찍이 그것을 배웠고 지금은 항상 사용하므로 쿼리를 더 쉽게 읽고 따르게한다. 기쁜 데 도움이되었습니다. 건배! – mathguy