728x90
AVG() 함수란 ❓
AVG() 함수는 집계함수의 종류로서, 숫자 값, 행, 열 또는 셀 그룹의 평균을 반환하는 함수입니다.
SELECT AVG(column)
FROM TABLE;
위와 같이 AVG() 인자에 평균을 구하고 싶은 데이터를 넣으면 됩니다.
SELECT ProductName,AVG(Price) AS Price
FROM Products
GROUP BY ProductName;
이 때 주의해야 할 점이 있습니다.
바로 NULL 값이 있는 경우인데, NULL 값이 있으면 오류가 발생할 수 있습니다. 그렇기 때문에 NULL값이 있는 경우 NVL() 함수, NVL2, NULLIF 등 NULL 값을 처리할 수 있는 함수를 사용해야 합니다.
SELECT ProductName,AVG(NVL(Price,0)) AS Price
FROM Products
GROUP BY ProductName;
위 왕같이 NVL() 함수를 이용해서 NULL 값을 0으로 치환을 해줘야지 오류가 발생하지 않습니다.
AVG() 함수를 활용하다 보면 위 결과와 같이 소수점을 처리해야 할 경우가 생기게 됩니다.
그렇기 때문에 보통 소수점을 반올림하거나 없애야 하는 경우가 자주 발생하기 때문에 AVG() 함수와 같이 사용하는 함수가 바로 ROUND() 함수입니다.
ROUND() 함수란❓
ROUND("값", "자리수")
SELECT round(3.2453) FROM dual; -- 3
SELECT round(3.876) FROM dual; -- 4
SELECT round(5.1830,0) FROM dual; -- 5, 첫째 자리에서 반올림
SELECT round(5.1830,1) FROM dual; -- 5.2
SELECT round(5.1830,2) FROM dual; -- 5.18, 셋째 자리에서 반올림
SELECT round(5.189,2) FROM dual; -- 5.19
SELECT round(5.1830,3) FROM dual; -- 5.183, 넷째 자리에서 반올림
위와 같이 반올림하고자 하는 값을 앞에 적고, 반올림할 위치를 뒤에 적어주면 됩니다.
만약 "자릿수"를 생략한다면 소수점 첫째 자리에서 반올림을 하게 됩니다.
정수 반올림
SELECT round(57.1830,-1) FROM dual; -- 60
SELECT round(54.1830,-1) FROM dual; -- 50
SELECT round(52154.1830,-3) FROM dual; -- 52,000
올림(CEIL)
SELECT CEIL (422.7) FROM dual; -- 423
SELECT CEIL(1.2) FROM dual; -- 2
내림(FLOOR)
SELECT CEIL (422.7) FROM dual; -- 422
SELECT CEIL(1.2) FROM dual; -- 1
버림(TRUNC)
SELECT TRUNC(2.12) FROM dual; --2
SELECT TRUNC(1.12345,1) FROM dual; --1.1
SELECT TRUNC(1.12345,2) FROM dual; --1.12
SELECT TRUNC(1.12345,3) FROM dual; -- 1.123
바꾸고자 하는 값을 앞에, 버릴 위치를 뒤에 넣어주면 되며, 아무것도 적지 않는다면 TRUNC(N,0)과 같은 의미입니다.
'Database > SQL' 카테고리의 다른 글
[MySQL] IntelliJ에서 Spring Boot와 MySQL 연동하기 (0) | 2024.07.23 |
---|---|
[ORACLE] SYSDATE 사용법과 TO_CHAR() 함수 알아보기 (0) | 2024.04.21 |