[MySQL] 계층형 데이터 소계 문의 0 1 1,315

by 홍이 [SQL Query] MySQL SQL query [2018.07.19 14:10:55]


1.png (69,394Bytes)
2.png (81,576Bytes)

안녕하세요
계층형으로 데이터가 있는 테이블을 소계 내고 싶은데 검색도 해보고 이것저것 해봤는데 잘되지가 않아 문의 드립니다.
select 
	depth, name, code, parent, extent
from 
	test
group by 
	code

depth 1 서울특별시에 extent 값을 자식컬럼 합(종로구 + 중구)으로 소계를 내고 싶습니다.

depth 2 종로구의 자식컬럼 합(청운효자동+사직동+삼청동)으로 소계를 내고 싶습니다.

이처럼 자식들의 합을 부모의 extent에 출력 하고 싶은데 잘 진행이 되지 않아 문의 드립니다.

 

무더운 여름 더워에 떨어지는 체력 보충 잘 하시고 행복한 하루 보내세요!

by 마농 [2018.07.23 07:39:35]

코드에 의미를 부여하여 상위코드를 포함하고 있으므로
코드 특성을 이용해 집계 가능합니다.
 

SELECT a.depth, a.name, a.code, a.parent, a.extent
     , SUM(b.extent) sum_extent
  FROM test a
 INNER JOIN test b
    ON b.code LIKE CONCAT(a.code, '%')
 GROUP BY a.depth, a.name, a.code, a.parent, a.extent
 ORDER BY code
;

 

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