집계 함수 MySQL

집계 함수의 모든 것

  • 여러 행에 대한 계산 수행
  • 테이블의 단일 열
  • 그리고 단일 값을 반환합니다.

ISO 표준은 5가지 집계 함수를 정의합니다.

1) 카운트
2) 합
3) AVG
4) 최소
5) 최대

집계 함수를 사용하는 이유

사업 관점에서, 각 조직 레벨은 각기 다른 정보 요구 사항을 가지고 있습니다. 최고 관리자는 일반적으로 전체 수치를 알고 싶어하며 개별 세부 정보는 필요하지 않습니다.

집계 함수를 사용하면 데이터베이스에서 요약된 데이터를 쉽게 생성할 수 있습니다.

예를 들어, Myflix 데이터베이스에서 경영진은 다음 보고서를 요구할 수 있습니다.

  • 최소 대여 영화.
  • 가장 많이 대여한 영화.
  • 한 달 동안 각 영화를 대여한 평균 횟수입니다.

우리는 집계 함수를 사용하여 위의 보고서를 쉽게 생성합니다.

집계 함수에 대해 자세히 살펴보겠습니다.

카운트 기능

COUNT 함수는 지정된 필드에 있는 값의 총 개수를 반환합니다. 숫자 및 숫자가 아닌 데이터 유형 모두에서 작동합니다. 기본적으로 모든 집계 함수는 데이터 작업 전에 Null 값을 제외합니다.

COUNT(*)는 지정된 테이블의 모든 행 수를 반환하는 COUNT 함수의 특수 구현입니다. COUNT(*)도 고려합니다. 그리고 중복.

아래 표에는 영화 대여 표의 데이터가 나와 있습니다.

참조_번호 거래 날짜 반환 기일 회원_번호 영화_ID 영화_ 반환됨
11 20-06-2012 NULL 1 1 0
12 22-06-2012 25-06-2012 1 2 0
13 22-06-2012 25-06-2012 3 2 0
14 21-06-2012 24-06-2012 2 2 0
15 23-06-2012 NULL 3 3 0

ID가 2인 영화가 대여된 횟수를 얻고 싶다고 가정해 보겠습니다.

SELECT COUNT(`movie_id`)  FROM `movierentals` WHERE `movie_id` = 2;

위의 쿼리를 실행하면 MySQL 워크 벤치 myflixdb에 대해 다음과 같은 결과를 얻었습니다.

COUNT('movie_id')
3

고유 키워드

고유 키워드

결과에서 중복 항목을 생략할 수 있게 해주는 DISTINCT 키워드입니다. 이는 유사한 값을 함께 그룹화함으로써 달성됩니다.

Distinct의 개념을 이해하기 위해 간단한 쿼리를 실행해 보겠습니다.

SELECT `movie_id` FROM `movierentals`;

movie_id
1
2
2
2
3

이제 고유 키워드를 사용하여 동일한 쿼리를 실행해 보겠습니다.

SELECT DISTINCT `movie_id` FROM `movierentals`;

아래에 표시된 것처럼, discover는 결과에서 중복된 레코드를 생략합니다.

movie_id
1
2
3

MIN 기능

MIN 함수 지정된 테이블 필드에서 가장 작은 값을 반환합니다..

예를 들어, 라이브러리에 있는 가장 오래된 영화가 개봉된 연도를 알고 싶다고 가정해 보겠습니다. MySQL원하는 정보를 얻으려면 의 MIN 함수를 사용하세요.

다음 쿼리는 우리가 그것을 달성하는 데 도움이 됩니다.

SELECT MIN(`year_released`) FROM `movies`;

위의 쿼리를 실행하면 MySQL myflixdb에 대한 workbench의 결과는 다음과 같습니다.

MIN('year_released')
2005

MAX 기능

이름에서 알 수 있듯이 MAX 함수는 MIN 함수의 반대입니다. 그것 지정된 테이블 필드에서 가장 큰 값을 반환합니다..

데이터베이스에 있는 최신 영화가 개봉된 연도를 얻고 싶다고 가정해 보겠습니다. 이를 달성하기 위해 MAX 함수를 쉽게 사용할 수 있습니다.

다음 예제는 최신 영화 개봉 연도를 반환합니다.

SELECT MAX(`year_released`)  FROM `movies`;

위의 쿼리를 실행하면 MySQL myflixdb를 사용하는 워크벤치는 다음과 같은 결과를 보여줍니다.

MAX('year_released')
2012

SUM 함수

지금까지 지불한 총 금액을 알려주는 보고서를 원한다고 가정해 보겠습니다. 우리는 MySQL SUM 기능 지정된 열에 있는 모든 값의 합계를 반환합니다.. SUM은 숫자 필드에서만 작동합니다.. 반환된 결과에서 Null 값은 제외됩니다.

다음 표는 지불 표의 데이터를 보여줍니다.

결제_ID 회원_번호 결제_날짜 설명 금액 지급 외부_ 참조_번호
1 1 23-07-2012 영화 대여 결제 2500 11
2 1 25-07-2012 영화 대여 결제 2000 12
3 3 30-07-2012 영화 대여 결제 6000 NULL

아래 표시된 쿼리는 모든 결제 내역을 가져오고 이를 합산하여 단일 결과를 반환합니다.

SELECT SUM(`amount_paid`) FROM `payments`;

위의 쿼리를 실행하면 MySQL myflixdb에 대한 Workbench의 결과는 다음과 같습니다.

SUM('amount_paid')
10500

AVG 기능

MySQL AVG 기능 지정된 열에 있는 값의 평균을 반환합니다.. SUM 함수와 마찬가지로 숫자 데이터 유형에서만 작동합니다..

평균 지불 금액을 찾고 싶다고 가정해 보겠습니다. 다음 쿼리를 사용할 수 있습니다.

SELECT AVG(`amount_paid`)  FROM `payments`;

위의 쿼리를 실행하면 MySQL 작업대는 다음과 같은 결과를 제공합니다.

AVG('amount_paid')
3500

뇌 맛보기

집계 함수가 쉽다고 생각합니다. 이 시도!

다음 예에서는 회원을 이름별로 그룹화하고, 총 지불 횟수, 평균 지불 금액, 지불 금액 총계를 계산합니다.

SELECT m.`full_names`,COUNT(p.`payment_id`) AS  `paymentscount`,AVG(p.`amount_paid`)  AS `averagepaymentamount`,SUM(p.`amount_paid`)  AS `totalpayments` FROM members m, payments p WHERE m.`membership_number` = p.`membership_number` GROUP BY m.`full_names`;

위의 예제를 다음에서 실행 MySQL 워크벤치는 다음과 같은 결과를 제공합니다.

AVG 기능

요약

  • MySQL 5개의 ISO 표준 집계 함수 COUNT, SUM, AVG, MIN 및 MAX.
  • 합계 및 AVG 함수는 숫자 데이터에만 작동합니다.
  • 집계 함수 결과에서 중복된 값을 제외하려면 DISTINCT 키워드를 사용하세요. ALL 키워드에는 중복 항목도 포함됩니다. 아무것도 지정하지 않으면 ALL이 기본값으로 간주됩니다.
  • 집계 함수는 다음과 같은 다른 SQL 절과 함께 사용할 수 있습니다. GROUP BY