[mySQL] 데이터 분석 함수 온라인 사전
** JavaScript를 공부하여 인자(아규먼트, Argument) 라는 단어가 편하여 인자 라는 단어를 사용함
** <인자> 와 같이 작성이 되어 있는데, <>는 빼고 입력하자
Aggregate Function(집계 함수)
COUNT(<인자>): row의 개 수 구하기
NULL의 개수는 빼고 구함.
모든 row를 구하고 싶으면 COUNT(*)를 작성하면 된다.
MAX(<인자>): 가장 큰 값 구하기 #최댓값 #최대값
MIN(<인자>): 가장 작은 값 구하기 #최솟값 #최소값
AVG(<인자>): 평균 값 구하기
NULL은 포함하지 않는다.
SUM(<인자>): 인자로 받은 값의 합을 구한다.
STD(<인자>): 인자로 받은 값의 표준편차를 구한다.
Mathematical Function (산술 함수)
ABS(<인자>): 절대값을 구해준다.
SQRT(<인자>): 제곱근을 구해준다.
CEIL(<인자>): 올림을 해주는 함수
엑셀(EXCEL)의 ROUNDUP 함수와 같다.
FLOOR(<인자>): 내림을 해주는 함수
엑셀(EXCEL)의 ROUNDDOWN 함수와 같다.
ROUND(<인자1> , <인자2> ): 반올림 해주는 함수 / 소수점 자리 표현해주는 함수
옵션: Default Value = 소수점 자리 없음, 1 = 소수점 한 자리, 2 = 소수점 두 자리 ... ...
조건: IS NULL: 값이 NULL인 레코드를 조회한다.
SELECT * FROM member WHERE address IS NULL // address 컬럼이 NULL인 레코드들을 조회.
조건: IS NOT NULL: 값에 NULL이 아닌, 즉 어떠한 값이 있는 레코드를 조회한다.
SELECT * FROM member WHERE address IS NOT NULL // address 컬럼이 NULL이 아닌 레코드들을 조회.
CONCAT (<인자1>, 'cm', <인자2>, 'kg' ) AS '<컬럼 이름>'
각 인자를 연결해준다. 결과값은 인자1cm인자2kg이 컬럼 이름에 담긴다.
CASE #새로운컬럼 #새컬럼 #변수 #변수만들기 #상수
(CASE... END
WHERE <조건문> THEN <값>
WHERE <조건문2> THEN <값2>
WHERE <조건문3> THEN <값3> ... ...
END) AS <컬럼 이름>
DISTINCT(<인자>): 고유한 값만 보여준다.

활용: DISTINCT(SUBSTRING(<인자>, <시작 번호>, <숫자>)): <인자>의 <시작 번호>번 부터 <숫자> 개를 추출하고, 고유값만 찾아준다.

LENGTH(): 문자열의 길이를 알려준다.
UPPER()와 LOWER(): 엑셀과 같다. 모두 대문자, 모두 소문자로 바꾼다.
LPAD()와 RPAD(): 인자로는 (<컬럼 이름>, <추가할 개수>, <추가할 문자>) 총 3개의 인자가 들어간다.
TRIM(), RTRIM(), LTRIM(): 공백 제거하는 함수, TRIM() 모든 공백, R은 오른쪽 공백을 제거, L은 왼쪽 공백 제거
그루핑(Grouping)
그루핑을 하면 함수는 각 그룹에 대해서 각각 실행된다.
집계함수를 함께 사용하면 더 자세히 분석이 가능하다. comman + f로 집계함수 겁색 OR Ctrl + f
그리고 GROUP BY로 그루핑하지 않은 컬럼은 SELECT에 작성할 수 없다.
하지만 집계함수와 같이 사용한다면 가능하다. (예를 들면 MAX(age))
GROUP BY <컬럼>: 같은 값을 가진 레코드 끼리 그루핑이 된다.

추가사실: 여러개의 컬럼을 그룹의 기준으로 사용 가능하다. (아래 예시 참고)

HAVING<컬럼 이름> = <값>: 그룹 중에서 특정 조건을 설정하여 검색
HAVING에서 조건을 2개 이상 하거나 다수의 조건 중에서 1개 이상이면 될 때는 AND, OR을 사용하여 조건을 추가하면 된다.
⛔️WHERE과는 다르다! WHERE은 row의 조건을 설정하고, HAVING은 GROUP의 조건을 설정한다.
WITH ROLLUP: 엑셀의 부분합과 같은 역할을 한다. GROUP BY의 기준으로 등장한 순서에 따라 결과가 달라진다
GROUP BY 다음에 사용하면 됨.
NULL 구분법 - GROUPING() 함수 사용
WITH ROLLUP을 위해 사용된 NULL의 경우 1을 반환하고, 아닌경우 0을 반환.

엄격한 순서의 법칙
1. SELECT
2. FROM
3. WHERE
4. GROUP BY
5. HAVING
6. ORDER BY
7. LIMIT
순서대로 나와야 한다.
하지만 실행 순서는 다음과 같다.
1. FROM: 어느 테이블을 대상으로 할 것인지 선택
2. WHERE: 해당 테이블에서 특정 조건을 만족하는 rows(레코드들)를 선별한다.
3. GROUP BY: 그루핑 기준대로 그루핑을 진행
4. HAVING: 특정 조건들을 만족하는 그룹들을 선별한다.
5. SELECT: 모든 컬럼, 혹은 특정 컬럼들을 조회. (여기서 AS를 통해 컬럼 이름을 정해주었다면, 7번 8번 부터 사용이 가능하다.)
6. ORDER BY: 특정 기준으로 row를 정렬
7. LIMIT: 인자값으로 주어진 수 만큼 추출.
'DB > mySQL' 카테고리의 다른 글
[mySQL] 서브쿼리 중첩의 문제점과 뷰(view) 이해하기 (0) | 2023.05.20 |
---|---|
[mySQL] 서브쿼리를 이용한 데이터 분석 (0) | 2023.05.19 |
[mySQL] 서브쿼리(subquery)에 대해 이해하기 (0) | 2023.05.19 |
[mySQL] 조인(JOIN) 작업에 대해 알아보기, 온라인 사전 (0) | 2023.05.18 |
[mySQL] 나를 위한 mySQL Workbench 온라인 사전 (0) | 2023.05.17 |