티스토리 뷰

DB

4. 함수(2)

prprme 2020. 11. 17. 00:35

함수(2)

MySQL Functions

https://www.w3schools.com/sql/sql_ref_mysql.asp

GROUPING

중복되는 값들을 그룹핑 | GROUP BY

 

SELECT job_id AS '직무', SUM(salary) AS '직무별 총급여', AVG(salary) AS '직무별 평균 급여'
  FROM employees
 WHERE employee_id >= 10
 GROUP BY job_id
 ORDER BY '직무별 총급여' DESC, '직무별 평균 급여';

- 기준 열과 그룹 함수가 함께 SELECT에 쓰였다면 반드시 해당 열 기준으로 GROUP BY 되어야 함(그룹 함수만 쓰인 경우는 GROUP BY를 반드시 할 필요는 없음)

- 열의 중복되는 값들을 그룹화하고 그룹화된 행은 그룹 함수가 적용된다.

- GROUP BY에 열을 여러 개 나열하여 대그룹, 중 그룹, 소그룹의 형태로 응용 가능, 나열 순서대로 그룹핑

1. FROM에 접근

2. WHERE 조건에 맞는 것들 골라냄

3. GROUP BY 기술된 기준 열을 기준으로 같은 데이터 값끼리 그룹화

4. SELECT 값 출력

5. ORDER BY : 순서 정렬

 

그룹 함수의 결괏값을 조건으로 사용 | HAVING

 SELECT job_id AS '직무', SUM(salary) AS '직무별 총급여', AVG(salary) AS '직무별 평균 급여'
  FROM employees
 WHERE employee_id >= 10
 GROUP BY job_id
HAVING SUM(salary) > 30000
 ORDER BY '직무별 총급여' DESC, '직무별 평균 급여';

- WHERE에서는 그룹 함수 사용 불가, HAVING을 사용해서 그룹 함수의 결괏값에 대해 조건식 적용

1. FROM 에 접근

2. WHERE 조건에 맞는 것들 골라냄

3. GROUP BY 기술된 기준 열을 기준으로 같은 데이터 값끼리 그룹화

4. HAVING 그룹화된 값에 대해 조건식 적용

5. SELECT 값 출력

6. ORDER BY : 순서 정렬

 

Aggregate Functions

최댓값, 최솟값 | MAX, MIN

SELECT MAX(salary) AS '최댓값', MIN(salary) AS '최솟값', MAX(first_name) AS '최대문자값', MIN(first_name) AS '최소문자값'
  FROM employees;

- 문자의 MAX, MIN 은 문자의 사전 순서

 

총합 | SUM

SELECT SUM(salary)
  FROM employees;

평균 | AVG

SELECT AVG(salary)
  FROM employees;

 

개수 | COUNT

SELECT COUNT(*)
  FROM employees;

 

👻 COUNT 는 null이 포함된 경우도 개수로 셈, 그 외는 null을 제외하고 연산

 

 

지난 함수(1) 포스팅에 이어서 이번 포스팅까지 함수에 대해서 다루어 보았습니다. 모든 함수를 다 다룬 것이 아닌데도 정말 많은 함수가 있네요.

그렇지만 자주 쓰는 함수는 아마 정해져 있을 것 같습니다.

낯익은 함수도 있고, 새로 배운 함수도 있고 유익한 시간이었습니다.

'DB' 카테고리의 다른 글

6. 집합 연산자  (0) 2020.11.18
5. JOIN  (0) 2020.11.18
3. 함수(1)  (0) 2020.11.16
2. 쿼리, 데이터 조회 기보  (0) 2020.11.16
1. SQL의 실행 과정과 분류  (0) 2020.11.15
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함