개발은 처음이라 개발새발
MySQL 기본 연산 COUNT, SUM, AVG, MIN/MAX 본문
MySQL은 기본적으로 SELECT 구문을 활용해 데이터베이스에서 데이터를 그대로 가져오는 것도 있지만 함수를 사용해 해당 컬럼의 갯수를 세어 본다거나 더하기를 하고 평균을 내며 최소/ 최대값 역시 불러올 수 있다. 오늘 예제는 w3schools를 활용해보겠다. w3schools 예제 문제 풀이뿐만 아니라 기본적인 쿼리 연습에 도움이 많이 되는 사이트니 참고하면 좋을 거 같다.
https://www.w3schools.com/sql/trysql.asp?filename=trysql_asc
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 |