메뉴 건너뛰기

infra

[mysql] union 으로 sum of sum 구하기

suritam92013.10.24 09:55조회 수 2854댓글 0

    • 글자 크기

아래처럼 한다. tbl.nr 에 sum(cash_mony) 라는 필드명을 쓰면 또 sum이 반영되기 때문에, 명령으로 쓰면 안 되고 해당 컬럼 이름을 변경해 줘야 한다. 내부 쿼리(서브 쿼리)는 tbl 이라는 테이블이 되고, sum(cash_mony)는 nr 이라는 컬럼으로 대체된다. 그러면, tbl.nr 을 sum 해주므로, 아래와 같이 최종 값을 구할 수 있다.


cate가 다른 세 값을 구하려 or 구문을 썼는데, 이상한 값이 나와서, 찾아봤다.


해킹에만 union을 쓸 줄 알았는데, 유용하게 쓰게 되었다. 이젠 union을 해킹에 쓸 수 없을 정도로 방어가 되었기 때문에, 본연의 기능으로 돌아가는 것이다.


SELECT SUM( tbl.nr ) AS nr
FROM (


SELECT SUM( cash_mony ) AS nr
FROM exp
WHERE `cate` = '1001' AND `reg_date` 
BETWEEN '20131001' AND '20131031'
UNION SELECT SUM( cash_mony ) AS nr
FROM exp
WHERE `cate` = '1002' AND `reg_date` 
BETWEEN '20131001' AND '20131031'
UNION SELECT SUM( cash_mony ) AS nr
FROM exp
WHERE `cate` = '1003' AND `reg_date` 
BETWEEN '20131001' AND '20131031'

) AS tbl



suritam9 (비회원)
    • 글자 크기
[아이폰] 사파리에서 meta 태그를 이용해 주소창, 버튼 가리기 + slider (by suritam9) [WIN] DisableCMD 로 쉘 접속 막기, 사용자 그룹 추가 삭제 (by suritam9)

댓글 달기

박영식
2012.03.24 조회 2047
suritam9
2012.07.06 조회 3065
suritam9
2012.07.06 조회 2210
suritam9
2012.10.04 조회 2254
suritam9
2013.05.05 조회 3781
suritam9
2013.09.05 조회 3239
첨부 (0)
위로