개발은 처음이라 개발새발

[My SQL] 집계 함수 & GROUP BY 2편 본문

mysql

[My SQL] 집계 함수 & GROUP BY 2편

leon_choi 2022. 10. 10. 15:17
반응형

SQL에서 group by와 함께 사용하는 집계함수에 대해 간단하게 알아보겠습니다. 위 표는 group by와 함께 사용되는 집계 함수입니다. 그렇다면 위의  것들 중에 예제로 간단하게 어떻게 노출되는지 확인해보겠습니다. 우선 평균을 구해보겠습니다. 지난 편에 이어 buytbl에서 전체 구매자가 구매한 물품의 개수를 구해보겠습니다. 

select avg(amount) as '평균 구매 개수' from buytbl;
+----------------+
| 평균 구매 개수 |
+----------------+
|         2.9167 |
+----------------+

이렇게 전체 평균 구매 개수를 구하는 걸 넘어 사용자별로 평균 구매 개수를 한번 내보겠습니다. 

select userid , avg(amount) as '평균 구매 개수' from buytbl group by userid;

+--------+----------------+
| userid | 평균 구매 개수 |
+--------+----------------+
| BBK    |         4.7500 |
| EJW    |         1.3333 |
| JYP    |         1.0000 |
| KBS    |         2.0000 |
| SSK    |         5.0000 |
+--------+----------------+

이렇게 group by를 통해 userid 별 그룹별로 평균 구매 개수를 확인할 수 있습니다. 그러면 이제 usertbl을 통해 max와 min함수를 해보겠습니다. 이번엔 서브쿼리도 사용해보려고 하는데요. usertbl에서 키가 제일 큰 사용자와 작은 사용자를 표출해보겠습니다. 

select name, height
from usertbl
where height = (select max(height) from usertbl) or
height = (select min(height) from usertbl);

+--------+--------+
| name   | height |
+--------+--------+
| 조용필 |    166 |
| 성시경 |    186 |
+--------+--------+

이번에는 휴대폰이 있는 사용자의 수를 카운트해보겠습니다. 이때는 count 연산자를 사용하면 되는데 괄호 안에 핸드폰 번호가 들어가 있는 mobile1 컬럼을 넣으면 됩니다. 

select count(mobile1) as '휴대폰 있는 사용자 수' from usertbl;

+-----------------------+
| 휴대폰 있는 사용자 수 |
+-----------------------+
|                     8 |
+-----------------------+

네 이렇게 count 연산자까지 활용해봤습니다. 앞으로 sql에 대해서 포스팅하며 다양한 연산자들을 활용해보도록하겠습니다.

반응형

'mysql' 카테고리의 다른 글

CASE...WHEN...THEN  (0) 2022.11.13
[My SQL] Having 절  (0) 2022.10.11
[My SQL] GROUP BY  (4) 2022.10.10
[My SQL] 서브쿼리  (2) 2022.10.03
[My SQL] LIKE 연산자 활용하기  (1) 2022.10.02