1. 순위함수는
- 중복 허용인 rank 보다는
- 유일한 row_number 가 의미상 맞습니다.
2. a 에 대한 검색 조건이 있다면?
- 조인 후에 row_number 하는 게 좋습니다.
- 필요한 자료만 조인하는 효과
3. a 에 대한 검색 조건이 없다면?
- row_number 후에 조인 하는 게 좋을 수도 있습니다.
- 조인 대상을 줄이는 효과
4. 단순 이름 하나만 가져오는 거라면?
- row_number 가 아닌 min 을 이용하여 구할 수도 있습니다.
5.조인시 주의사항
- b 를 아우터 조인했다면?
- b 에 연결되는 c 도 순차적으로 아우터 조인해야 합니다.
말씀하신 것을 요약한다면,
SELECT *
FROM A WITH (NOLOCK)
LEFT OUTER JOIN B WITH (NOLOCK)
A.KEY = B.KEY
LEFT OUTER JOIN C WITH (NOLOCK)
B.KEY = C.KEY
(2번)A에 대한 조건이 있다면
C 테이블을 따로 ROW_NUMBER하는게 아니라,
위 테이블 전체를 ROW_NUMBER하라는 말씀이신가요?
(3번)은 C 테이블을 따로 ROW_NUMBER하고 난 다음 A/B를 조인한 것을 조인하라는 말씀이 맞는건가요?
주의사항까지 꼼꼼하게 알려주셔서 고맙습니다.