반응형
Notice
Recent Posts
Recent Comments
Link
개발은 처음이라 개발새발
[My SQL] GROUP BY 본문
반응형
SQL에는 파이썬 처럼 group by가 존재합니다. group by는 말그대로 그룹으로 묶어주는 역할을 합니다. 이를 통해서 그룹별로 수량이 어떻게 되는지 그리고 품목 남은 수량의 가격이나 구매자가 총 얼마를 결재 했는지에 대해 알 수 있습니다. 우선 buytbl에서 사용자별 구매한 물품 개수에 대해 알아보겠습니다.
select userid, sum(amount) from buytbl group by userid;
+--------+-------------+
| userid | sum(amount) |
+--------+-------------+
| BBK | 19 |
| EJW | 4 |
| JYP | 1 |
| KBS | 6 |
| SSK | 5 |
+--------+-------------+
네 이렇게 유저 id별 총 구매 개수를 나타내봤는데요. 수량에 해당하는 amount는 sum 연산자를 활용해서 계산를 했습니다. sum같은 연산자들을 집계 함수라고 하는데 group by함께 잘 사용되니 다음 시간에 간략하게 소개를 해보도록하겠습니다. 그리고 컬럼을 보면 userid, sum(amount)라고 그대로 나와 있는데요. 이를 별칭(allas)으로 변경할 수 있는데요. AS '별칭'을 적으면 됩니다. 그러면 별칭을 정해보겠습니다.
select userid as '사용자 아이디', sum(amount) as '총 구매 개수' from buytbl group by userid;
+---------------+--------------+
| 사용자 아이디 | 총 구매 개수 |
+---------------+--------------+
| BBK | 19 |
| EJW | 4 |
| JYP | 1 |
| KBS | 6 |
| SSK | 5 |
+---------------+--------------+
이번에는 구매액 총합을 출력해보겠습니다. 사용자가 지출한 총액을 구해야 하기 때문에 사용자 아이디를 기준으로 사용자가 구매한 제품의 가격*수량의 합산을 모두 더하면 됩니다.
select userid as '사용자 아이디', sum(price*amount) as '총 구매액' from buytbl group by userid;
+---------------+-----------+
| 사용자 아이디 | 총 구매액 |
+---------------+-----------+
| BBK | 1920 |
| EJW | 95 |
| JYP | 200 |
| KBS | 1210 |
| SSK | 75 |
+---------------+-----------+
이렇게 총 구매액까지 구했는데요. 다음 시간에는 집계 함수에 대해 소개해보고 order by를 통한 정렬도 함께 다뤄보겠습니다.
반응형
'mysql' 카테고리의 다른 글
[My SQL] Having 절 (0) | 2022.10.11 |
---|---|
[My SQL] 집계 함수 & GROUP BY 2편 (0) | 2022.10.10 |
[My SQL] 서브쿼리 (2) | 2022.10.03 |
[My SQL] LIKE 연산자 활용하기 (1) | 2022.10.02 |
[My SQL] WHERE절의 기본과 BETWEEN...AND, IN (2) | 2022.10.02 |