본문 바로가기
MySQL

[MySQL] 합 구하기 sum / 그룹별로 집계하기 group by / 정렬 order by

by LightBlogger 2017. 5. 5.

2017/05/04 - [SQL] - [SQL] 조건절 WHERE 사용하기(and, or, not, like) 에서 사용하던 product_data 에서


금액들의 총 합은 얼마일까?


SELECT


sum(price)


FROM


product_data


;



이게 얼마야, 1억 1,500만 원이라는가 보다.


하지만 그보다는 이런 게 궁금하기 마련이다. '각 제조사가 파는 항목들의 총 금액은?'


즉 금액의 합계를 각 제조사별로 그룹핑 해 주어야 하는 것인데, 직관적이게도 GROUP BY 명령어를 사용하면 된다.


SELECT


sum(price)


FROM


product_data


GROUP BY manufacturer


;



오!


세 가지로 나왔으니 잘 나온 것 같긴 한데, 이러면 뭐가 뭔지 모르잖아?


제조사도 같이 출력하자.


SELECT


manufacturer, sum(price)


FROM


product_data


GROUP BY manufacturer


;



제조사 C에서 고가의 제품을 많이 판매하는 모양이다.


가격이 높은 제조사부터 먼저 보고 싶다면?


ORDER BY 를 사용하여 정렬하면 된다.


SELECT


manufacturer, sum(price)


FROM


product_data


GROUP BY manufacturer


ORDER BY sum(price) DESC


;



DESC 는 내림차순(descending)의 약자다. 오름차순은 ascending 이므로 asc를 써주어도 되는데, 생략하면 기본이 오름차순이다.


두 개 이상의 항목에 대해서도 정렬을 지정할 수 있다.


예를 들어 제품의 가격들을 첫 번째로 제조사 알파벳 순, 그리고 그 안에서 가격 역순으로 정렬하려면


SELECT


manufacturer, price


FROM


product_data


ORDER BY manufacturer ASC, price DESC


;



제품 이름도 나와야지!


SELECT


manufacturer, price, name


FROM


product_data


ORDER BY manufacturer ASC, price DESC


;



무려 전자책 단말기가 1등 -_-

반응형

댓글