master, detail 구조에서 select 할때 1 65

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 타는지 정도만 파독하고 있어요.