MySQL의 집계 함수

집계 함수의 모든 것

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

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

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

집계 함수를 사용하는 이유

비즈니스 관점에서 볼 때 조직 수준에 따라 정보 요구 사항이 다릅니다. 최고 수준의 관리자는 일반적으로 KNO에 관심이 있습니다.wing 전체 수치이며 개별 데이터는 필요하지 않습니다.tails.

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

예를 들어 myflix 데이터베이스에서 관리하려면 다음 작업이 필요할 수 있습니다.wing 보고서

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

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

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

카운트 기능

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에 대한 다음 내용을 제공합니다.wing 결과.

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 함수를 사용하여 원하는 정보를 얻을 수 있습니다.

더 폴로wing 쿼리는 이를 달성하는 데 도움이 됩니다.

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

myflixdb에 대해 MySQL 워크벤치에서 위 쿼리를 실행하면 다음과 같은 결과가 나옵니다.wing 결과.

MIN('year_released')
2005

MAX 기능

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

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

더 폴로wing 예는 개봉된 최신 영화 연도를 반환합니다.

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

myflixdb를 사용하여 MySQL 워크벤치에서 위 쿼리를 실행하면 다음과 같은 결과가 나옵니다.wing 결과.

MAX('year_released')
2012

SUM 함수

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

더 폴로wing 표는 지불 표의 데이터를 보여줍니다.

결제_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`;

myflixdb에 대해 MySQL 워크벤치에서 위 쿼리를 실행하면 다음과 같은 결과가 나타납니다.wing 결과.

SUM('amount_paid')
10500

AVG 기능

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

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

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

MySQL 워크벤치에서 위 쿼리를 실행하면 다음과 같은 결과가 나옵니다.wing 결과.

AVG('amount_paid')
3500

뇌 맛보기

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

더 폴로wing 예시에서는 구성원을 이름별로 그룹화하고 총 결제 횟수, 평균 결제 금액 및 결제 금액의 총계를 계산합니다.

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 워크벤치에서 위의 예제를 실행하면 다음과 같은 결과가 나옵니다.wing 결과.

AVG 기능

요약

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