개발은 처음이라 개발새발

MySQL 기본 연산 COUNT, SUM, AVG, MIN/MAX 본문

mysql

MySQL 기본 연산 COUNT, SUM, AVG, MIN/MAX

leon_choi 2023. 4. 10. 21:42
반응형

MySQL은 기본적으로 SELECT 구문을 활용해 데이터베이스에서 데이터를 그대로 가져오는 것도 있지만 함수를 사용해 해당 컬럼의 갯수를 세어 본다거나 더하기를 하고 평균을 내며 최소/ 최대값 역시 불러올 수 있다. 오늘 예제는 w3schools를 활용해보겠다. w3schools 예제 문제 풀이뿐만 아니라 기본적인 쿼리 연습에 도움이 많이 되는 사이트니 참고하면 좋을 거 같다.

 

https://www.w3schools.com/sql/trysql.asp?filename=trysql_asc 

 

SQL Tryit Editor v1.6

WebSQL stores a Database locally, on the user's computer. Each user gets their own Database object. WebSQL is supported in Chrome, Safari, Opera, and Edge(79). If you use another browser you will still be able to use our Try SQL Editor, but a different ver

www.w3schools.com

 

1. count

우선 COUNT에 대해 알아보면 한마디로 개수를 세어주는 것이다. 아래 예제처럼 COUNT(*)를 입력하게 되면 테이블의 전체 로우의 수를 표시한다.

SELECT COUNT(*) 
FROM Products
Number of Records: 1
count(*)
77

그러면 특정 컬럼의 개수를 세어보고 싶다면 COUNT 안에 * 대신 테이블의 컬럼 명을 기재하면 된다. 여기서 더 나아가서 컬럼의 값들 중에 중복을 제외한 컬럼을 개수를 센다면 "DISTINCT"를 활용하면 된다. 

#중복된 값들을 제외하고 특정 컬럼의 개수 세기

SELECT COUNT(DISTINCT SupplierId)
FROM Products

 

2. sum & avg

숫자 데이터를 가진 컬럼은 계산이 가능하다. 그중에서 제일 간단한 건 역시 더하기다. 

#sum = 더하기

SELECT SUM(Price) 
FROM Products
Result:
Number of Records: 1
SUM(Price)
2222.71

그다음은 평균인데 평균은 sum대신 avg를 적으면 된다. 

#avg = 평균

SELECT AVG(Price) 
FROM Products
Result:
Number of Records: 1
AVG(Price)
28.866363636363637

단, 평균을 구할 때 주의할 점이 있는데 NULL값이 있을 경우다. NULL값이 있을 경우, avg 함수를 사용하면 NULL 값을 제외하고 평균을 구하게 된다. 그렇기에 NULL 0으로 취급하고 NULL를 포함해서 평균을 구하려면 sum(Price)/count(*)를 활용해 평균을 구해야 한다.

 

3. 최소/ 최대값

최소값과 최대값은 각각 MIN, MAX 함수를 통해 구할 수 있다.

SELECT MIN(Price), MAX(Price) 
FROM Products
Number of Records: 1
MIN(Price)	MAX(Price)
2.5	        263.5
반응형

'mysql' 카테고리의 다른 글

[해커랭크] MySQL 집계함수 문제 풀이  (0) 2023.04.22
My SQL 소수점 처리  (0) 2023.04.22
CASE...WHEN...THEN  (0) 2022.11.13
[My SQL] Having 절  (0) 2022.10.11
[My SQL] 집계 함수 & GROUP BY 2편  (0) 2022.10.10