Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 나중에도 같은문제면 이렇게 시도해봐야겠다
- 클래스명과 파일명 동일한 이유
- ROLLUP#합계
- 서버이전
- dockerfile #dockerrun #빌드
- 개발자포트폴리오
- 클래스명
- JSON #javascript
- sql린이#공부중
- ArrayList
- 오류해결
- WORK폴더
- 인스턴스오류 #Tomcat #mysql
- 서터 세팅이 잘못인가
- 클래스
- brew #mariadb #Django #Python
- 자바프로그래밍
- 인터페이스
- Spring #Scheduler #JAVA
- iBATIS
- 근데왜지
- Tomcat
- 객체정렬 #Java8
- 바인딩
- list
- Java
- Integer
- aws #ec2 #instance #클라우드 #cloud #it
- Spring REST Docs #Swagger #JAVA #REST API
- 포트폴리오 작성
Archives
- Today
- Total
HoneyBee
Mysql rollup 사용시 주의사항 본문
모두가 알고 있겠지만 항목들에 대한 합계, 소계를 하기 위해서는 rollup을 사용하게 된다.
그러나 곱하기 연산이 들어간 상황에서 sum을 할때 잘못된 값이 합계되는 경우가 있어 작성한다.
* 테이블 설정
test스키마에 test2 테이블의 컬럼과 데이터다
--item_qty1와 item_qty2 를 rollup 하고 싶은 상황이다.
select
item_qty1,
item_qty2,
sum(item_qty1) * sum(item_qty2 ) as item_qty4
from
test.test2 t
group by item_qty1,item_qty2 with rollup
-> 여기서는 sum을 두개 사용하다보니
sum(item_qty1) = 6 , sum(item_qty2) = 9
6 * 9 = 54
그래서 54 라는 값이 나오게 된것
select
item_qty1,
item_qty2,
sum(item_qty1 * item_qty2 ) as item_qty4
from
test.test2 t
group by item_qty1,item_qty2 with rollup
그래서 곱하기를 사용한 상태에서 정상적인 값을 출력하고 싶다면 곱하기 한 값을 전체로 sum을 해주어야 제대로 된 rollup 결과를 볼수가 있다.
사실 이것을 알게 된것은 회사에서 postgresql을 사용하다가 발견한 문제인데 postgresql도 동일하니 조심해서 사용하길 바란다. 이상 끝
'SQL > Mysql' 카테고리의 다른 글
Mysql 코딩테스트 연습 in 프로그래머스' (0) | 2021.05.11 |
---|