1-3. 집계 함수

타키탸키·2020년 12월 22일
0

LEARN SQL

목록 보기
3/3

지난 시간에는 테이블에서 행을 필터링 하는 다양한 구문들에 대해 알아봤습니다. 지금까지는 SELECT, COUNT, WHERE 등 SQL에서 가장 기본이 되는 명령어들을 배워봤는데요! 많이 활용되는 만큼 사용에 익숙해지셨길 바랍니다 😊😊😊

오늘부터는 조금 더 심화된 개념인 집계 함수를 배워봅시다! 💪⚡

집계 함수는 데이터를 요약하고 데이터에 대한 유용한 인사이트를 추출하는 데 아주 중요한 역할을 합니다. 엑셀에서 SUM과 AVERAGE 등의 함수를 사용해 본 적이 있으신가요? 그렇다면 오늘 배울 내용이 그리 어렵지 않을 거라 생각합니다. 아주 유사한 메커니즘을 가지고 있으니까요! ✌✌ SQL을 활용한 간단한 연산도 함께 배워봅시다 💫💫💫

🌈 집계 함수

여러분은 때로 SQL 안에서 연산을 해야 되는 경우가 있습니다. 앞서 활용했던 테이블에 사용 시간과 예산이라는 필드명이 추가되었습니다. 함께 보실까요?

SQL의 기본 집계 함수에는 합을 구하는 SUM과 평균을 구하는 AVG, 최댓값과 최솟값을 구하는 MIN과 MAX가 있습니다.

간단한 예제로, 게임들의 평균 사용 기간을 한 번 구해볼까요?

SELECT AVG(duration)
FROM games

집계 함수의 경우 별칭을 지정하지 않아도 avg와 sum 같은 필드명을 자동으로 제시해줍니다.

MAX를 활용하여 게임 테이블 내 최대 예산을 구해봅시다.

SELECT MAX(budget)
FROM games

🌈 집계 함수와 조건문

집계 함수는 조건문 내에서 활용이 가능합니다. 2010년 이후 출시된 게임들의 사용 시간의 합계는 어떻게 구하면 될까요?

SELECT SUM(duration)
FROM games
WHERE release_year > 2010

이 쿼리는 2010년 이후에 출시된 LOL과 Overwatch, CyberPunk와 BattleGround의 사용 기간을 모두 더한 값을 추출합니다.

🌈 SQL 사칙연산 팁

집계 함수를 사용하면서 +, -, *, /와 같은 사칙연산을 많이 활용하게 될텐데요. 이때, 꼭 알아야 할 것이 있습니다 ⭐⭐⭐

바로 나누기 연산을 할 때 숫자 데이터 타입에 따따 연산 결과가 다르게 나타난다는 점입니다. 계산기에서 정수 2와 소수 2.0은 같은 값으로 인식되지만 컴퓨터 연산의 경우 종종 다른 수로 인식하곤 합니다. 따라서, 10.0 / 3.0을 할 경우 1.333이 나오는 반면, 10/3을 하게 되면 몫인 3만이 출력됩니다.

SELECT 25 / 10 * 100.0

이 연산은 어떤 값을 출력할까요? 앞서 정수의 나누기로 인해 몫인 2만이 출력되고 2와 100.0이 곱해져 200.0이 출력됩니다. 이처럼 나누기를 사용하게 되면 흔히 생각하는 연산 결과와 다른 값이 나오기 때문에 주의해야 합니다. 따라서, 정확한 값을 원한다면 소수를 잘 활용해야 합니다.

SELECT 25 * 100.0 / 10

이렇게 소수를 먼저 곱해준 뒤 10을 되면 앞선 값이 소수가 되고 소수와 정수를 나누어 소숫값인 250.0이 정상적으로 출력됩니다. 따라서, 소수와 정수의 연산은 소수의 값으로 출력이 됩니다.

🌈 AS 별칭 활용하기

앞서 집계 함수를 사용하면 자동으로 필드명이 집계함수로 나타나는 것을 봤습니다. (ex:) MAX함수에 대한 필드명 max) 다른 필드(duration, budget)에 대해 동일한 집계 함수(MAX)를 사용할 경우에도 동일한 필드명(max)이 나오게 되는데 중복된 필드명은 좋은 선택이 아닙니다. 따라서, SQL에서는 이러한 상황을 방지하고자 별칭을 많이 활용합니다.

SELECT MAX(duration) AS max_duration,
       MAX(budget) AS max_budget
FROM games

이렇게 함수 뒤에 별칭을 지정해 두면 결과 테이블의 필드명이 별칭으로 바뀌어 나타납니다. 이외에도 별칭을 쓰는 습관을 들이면 복잡한 코드에 대한 값을 명확히 정의할 수 있으므로 자주 연습해 봅시다!


오늘은 간단한 집계 함수를 배웠는데요. 데이터 분석은 방대한 양을 다루는 만큼 요약을 용이하게 해주는 집계 함수의 사용은 필수적입니다. 따라서, 집계 함수의 개념을 정확히 알아두는 것이 중요합니다.

이후, 집계함수를 사용함에 있어 자주 부딪히는 문제를 발견하게 될 것입니다. 다음 시간에는 그 부분에 대해 더 자세히 알아보도록 합시다.

profile
There's Only One Thing To Do: Learn All We Can

0개의 댓글