[질문]오라클 범위 Group by 쿼리 0 1 1,137

by 미소년프로도 [SQL Query] Group by [2018.12.17 02:57:33]


오라클 SQL 의 고수분들의 조언 부탁드립니다.

SEQ NAME QTY
1 A 10
2 A 10
3 A 10
4 B 10
5 B 10
6 A 10
7 A 10
8 A 10

-> Group by 절

SEQ(MIN) NAME QTY(SUM)
1 A 30
4 B 20
6 A 30

이런 식으로 결과값 조회가 가능 한가요??

야매로 하려니까 쿼리가 너무 지저분해 지고 

고수분들의 조언 부탁드립니다.

by 마농 [2018.12.17 08:32:29]
WITH t AS
(
SELECT 1 seq, 'A' name, 10 qty FROM dual
UNION ALL SELECT 2, 'A', 10 FROM dual
UNION ALL SELECT 3, 'A', 10 FROM dual
UNION ALL SELECT 4, 'B', 10 FROM dual
UNION ALL SELECT 5, 'B', 10 FROM dual
UNION ALL SELECT 6, 'A', 10 FROM dual
UNION ALL SELECT 7, 'A', 10 FROM dual
UNION ALL SELECT 8, 'A', 10 FROM dual
)
SELECT MIN(seq) min_seq
     , name
     , SUM(qty) sum_qty
  FROM (SELECT seq, name, qty
             , ROW_NUMBER() OVER(ORDER BY seq)
             - ROW_NUMBER() OVER(PARTITION BY name ORDER BY seq) gb
          FROM t
        )
 GROUP BY gb, name
 ORDER BY min_seq
;

 

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