sql질문 (group by) 0 2 163

by 밋데 [SQL Query] [2021.02.23 11:31:51]


Table1의 Col1, Col2, Col3, Col4 으로 group by를 하고 
덧붙여서 컬럼을 추가하여 조회를 하고싶습니다!
Table2도 조인하여 함께 조회하고 싶습니다.(Table2에서 조회하고싶은 컬럼들의 조건들은 같습니다.)

SELECT   Table1.Col1
       , Table1.Col2
       , Table1.Col3
       , Table1.Col4,
       , (select count(*) 
            from Table1
           where  Col2 = Table1.Col2
             and ColA IS NOT NULL 
             AND TRIM (ColB) IS NOT NULL) Col5
       , (select count(*) 
            from Table1
           where  Col2 = Table1.Col2
             and ColA IS NOT NULL 
             AND TRIM (ColC) IS NOT NULL) Col6
        , (select MAX(Col7) KEEP(DENSE_RANK FIRST ORDER BY Col2)
            from Table1
           where Col1 = Table1.Col1
             and Col2 = Table1.Col2
             and Col3 = Table1.Col3
             and Col4 = Table1.Col4) Col7
        , (select MAX(Col8) KEEP(DENSE_RANK FIRST ORDER BY Col2)
            from Table1
           where Col1 = Table1.Col1
             and Col2 = Table1.Col2
             and Col3 = Table1.Col3
             and Col4 = Table1.Col4) Col8
       , (select Col9
            from Table2
           where Col1 = Table1.Col1) Col9
       , (select Col10
            from Table2
           where Col1 = Table1.Col1) Col10
  FROM Table1
 GROUP BY Table1.Col1, Table1.Col2, Table1.Col3, Table1.Col4
 ORDER BY Table1.Col1, Table1.Col2, Table1.Col3, Table1.Col4
;

 

by 마농 [2021.02.23 12:56:57]
SELECT a.col1
     , a.col2
     , a.col3
     , a.col4
     , SUM(COUNT(CASE WHEN a.cola IS NOT NULL THEN TRIM(a.colb) END)) OVER(PARTITION BY a.col2) col5
     , SUM(COUNT(CASE WHEN a.cola IS NOT NULL THEN TRIM(a.colc) END)) OVER(PARTITION BY a.col2) col6
     , MAX(a.col7) col7
     , MAX(a.col8) col8
     , b.col9
     , b.col10
  FROM table1 a
  LEFT OUTER JOIN table2 b
    ON a.col1 = b.col1
 GROUP BY a.col1, a.col2, a.col3, a.col4, b.col9, b.col10
 ORDER BY a.col1, a.col2, a.col3, a.col4
;

 


by 밋데 [2021.02.23 15:07:23]

많이 배워갑니다. 감사합니다.^^

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