[Programming][MySQL] 연산을 할 수 있는 다양한 함수(Feat. 카카오 주가 데이터)
- 집계 함수 (Aggregate Function)
-- 개수 집계 함수(COUNT)
SELECT COUNT(*) FROM kakao;
-- 총 합 집계 함수(SUM)
SELECT SUM(vloume) FROM kakao;
- COUNT는 개수를 세는 집계 함수이다. * 을 사용하여 전체 개수를 산출하는 쿼리를 입력한 결과 52개로 개수가 출력되었다.
- SUM은 합을 계산하는 집계 함수로, 1년 동안 전체 거래량의 합을 출력했다.
-- 평균 집계 함수(AVG)
SELECT AVG(close) FROM kakao;
-- 표준편차 집계 함수(STD)
SELECT STD(close) FROM kakao;
- AVG는 평균을 구하는 집계 함수이다. 종가(close)의 평균을 구한 결과 지난 1년 동안 카카오 주가의 평균은 96,953원이라는 사실을 알 수 있다.
- STD는 표준편차를 구하는 집계 함수로 종가(close)의 표준편차는 27278.81로 산출된다.
-- 최소값 집계 함수(MIN)
SELECT MIN(volume) FROM kakao;
-- 최대값 집계 함수(MAX)
SELECT MAX(volume) FROM kakao;
- MIN은 최솟값을 산출하는 함수이고, MAX는 최댓값을 산출하는 함수이다. 카카오 주가의 1년 동안 거래량이 가장 적었던 주(week)와 많았던 주를 산출했다.
집계 함수에 대해 더 다양하게 알고 싶다면, 아래 MySQL Manual에서 확인할 수 있다.
MySQL :: MySQL 8.0 Reference Manual :: 12.20.1 Aggregate Function Descriptions
MySQL :: MySQL 8.0 Reference Manual :: 12.20.1 Aggregate Function Descriptions
MySQL 8.0 Reference Manual / ... / Functions and Operators / Aggregate Functions / Aggregate Function Descriptions 12.20.1 Aggregate Function Descriptions This section describes aggregate functions that operate on sets of values. They are
dev.mysql.com
2. 산술 함수(Mathematical Function)
먼저, 변동성에 다양한 산술 함수를 적용해 보기 위해서 TEXT 타입이었던 변동성(fluctuation) 열(Column)을 숫자형(double; 음수와 소수점까지 고려하기 위해)으로 변경했다.
SELECT CAST(TRIM('%' FROM fluctuation) AS double) as fluct
FROM kakao;
기존의 fluctuation 변수는 %를 포함한 문자형이었다.
- TRIM 함수를 사용해서 fluctuation 변수의 %를 제거해주었다.
- CAST는 데이터 타입을 변경하는 함수로 AS DOUBLE과 같이 숫자형 변수로 변경했다.
-- 절대 값 산술 함수(ABS)
SELECT ABS(CAST(TRIM('%' FROM fluctuation) AS DOUBLE)) as fluct
FROM kakao;
-- 반올림 산술 함수(ROUND)
SELECT ROUND(CAST(TRIM('%' FROM fluctuation) AS DOUBLE)) as fluct
FROM kakao;
- ABS는 절대 값을 만들어 주는 함수이다. ABS를 사용했더니 기존의 마이너스 값들이 없어진 것을 볼 수 있다.
- ROUND는 반올림을 취하는 함수이다. 오른쪽 그림과 같이 소수 첫째 자리에서 반올림된 것을 확인할 수 있다.
-- 올림 산술 함수(CEIL)
SELECT CEIL(CAST(TRIM('%' FROM fluctuation) AS DOUBLE)) as fluct
FROM kakao;
-- 내림 산술 함수(FLOOR)
SELECT FLOOR(CAST(TRIM('%' FROM fluctuation) AS DOUBLE)) as fluct
FROM kakao;
- CEIL은 올림 함수이고, FLOOR는 내림 함수이다. 뒤 값의 결과가 함수에 따라 달라졌다.
아래 MySQL Manual에서 더 다양한 산술 함수를 찾아볼 수 있다.
MySQL :: MySQL 8.0 Reference Manual :: 12.6 Numeric Functions and Operators
MySQL :: MySQL 8.0 Reference Manual :: 12.6 Numeric Functions and Operators
MySQL 8.0 Reference Manual / Functions and Operators / Numeric Functions and Operators 12.6 Numeric Functions and Operators Table 12.8 Numeric Functions and Operators Name Description %, MOD Modulo operator * Multiplication operator + Addition o
dev.mysql.com