master, detail 구조에서 select 할때 0 3 1,245

by 농부지기 [2019.09.05 10:23:03]


master, detail 구조에서 detail의 max, min 등의 값을 가져올경우 보통아래와 같이 subsql문장을 사용하고 있는데요.   이게 맞게 하는지 항상의심스러워 이번에 질문 합니다. 좀 더 낳은 방향이 있을까요?

SELECT A.EMP
     , A.DEPT
     , A.컬럼 다수 존재.......
     , (SELECT MAX(SALARY)
          FROM T_SALARY B
         WHERE A.DEPT = B.DEPT)
     ) MAX_DEPT_SALARY
  FROM T_EMP  A
.....
by 우리집아찌 [2019.09.05 10:38:23]
SELECT A.EMP
     , A.DEPT
     , A.컬럼 다수 존재.......
     , B.SALARY
  FROM T_EMP A
     , ( SELECT MAX(SALARY) SALARY , DEPT FROM T_SALARY GROUP BY DEPT )  B
WHERE A.DEPT = B.DEPT
     

 


by 마농 [2019.09.06 10:02:49]

1. 서브쿼리를 해도 되고.
2. 조인 후 그룹바이를 해도 되고
3. 그룹바이 후 조인을 해도 되는데
보통 서브쿼리 보다는 조인이 나을 듯 합니다.
어떤 방법이 더 나을지? 는
조건이 어떻게 주어지느냐 등의 여러가지 상황에 따라서 달라집니다.


by 농부지기 [2019.09.06 11:02:37]

감사합니다.
it경력은 쌓여 가는데 단순해 보이는 sql하나에도 아직 고민 하네요.

plan 보는 능력을 키워야 되는데... plan판독 어렵네요.
보통 index 타는지 정도만 파독하고 있어요.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입