SQL 집계 함수. SQL 집계 함수 - SUM, MIN, MAX, AVG, COUNT

Discipline 열의 값을 기준으로 합니다. 그룹의 튜플 수, Score 열의 최대값 또는 최소값과 같은 일부 그룹 값을 계산할 수 있는 4개의 그룹을 얻습니다. 표 5.7. 집계 함수
기능 결과
세다 쿼리가 선택한 행 수 또는 비어 있지 않은 필드 값
합집합 이 필드에 대해 선택된 모든 값의 합계
평균 이 필드에 대해 선택된 모든 값의 산술 평균
최소 이 필드에 대해 선택된 모든 값 중 가장 작은 값
최대 이 필드에 대해 선택된 모든 값 중 가장 큰 값
R1
이름 규율 등급
그룹 1 페트로프 F.I. 데이터 베이스 5
시도로프 K.A. 데이터 베이스 4
미로노프 A.V. 데이터 베이스 2
스테파노바 K. E. 데이터 베이스 2
크릴로바 T. S. 데이터 베이스 5
블라디미로프 V. A. 데이터 베이스 5
그룹 2 시도로프 K.A. 정보 이론 4
스테파노바 K. E. 정보 이론 2
크릴로바 T. S. 정보 이론 5
미로노프 A.V. 정보 이론 없는
그룹 3 트로피모프 P.A. 네트워크 및 통신 4
이바노바 E.A. 네트워크 및 통신 5
우트키나 N.V. 네트워크 및 통신 5
그룹 4 블라디미로프 V. A. 영어 4
트로피모프 P.A. 영어 5
이바노바 E.A. 영어 3
페트로프 F.I. 영어 5

집계 함수 SELECT 문의 필드 이름과 유사하게 사용되지만 한 가지 예외가 있습니다. 필드 이름을 인수로 사용합니다. SUM 및 AVG 함수에는 숫자 필드만 사용할 수 있습니다. 숫자 및 문자 필드 모두 COUNT , MAX 및 MIN 함수와 함께 사용할 수 있습니다. 문자 필드와 함께 사용하면 MAX 및 MIN은 이를 동등한 ASCII 코드로 변환하고 알파벳 순서로 처리합니다. 일부 DBMS는 중첩된 집계의 사용을 허용하지만 이는 모든 후속 결과와 함께 ANSI 표준에서 벗어난 것입니다.

예를 들어, 각 분야에서 시험을 치른 학생 수를 계산할 수 있습니다. 이렇게 하려면 "분야" 필드별로 그룹화된 쿼리를 실행하고 분야 이름과 이 분야에 대한 그룹의 행 수를 결과로 표시해야 합니다. COUNT 함수에 대한 인수로 * 문자를 사용한다는 것은 그룹의 모든 행을 계산한다는 의미입니다.

R1.Discipline, COUNT(*) FROM R1 GROUP BY R1.Discipline 선택

결과:

어떤 분야에서든 시험에 합격한 사람의 수를 계산하려면 그룹화하기 전에 원래 비율에서 불확실한 값을 제외해야 합니다. 이 경우 요청은 다음과 같습니다.

결과는 다음과 같습니다.

이 경우 학생과의 라인은

미로노프 A.V. 정보 이론 없는

그룹화하기 전에는 튜플 세트에 속하지 않으므로 그룹에서 관리할 튜플 수는 " 정보 이론"는 1이 줄어듭니다.

사용될 수 있다 집계 함수또한 사전 그룹화 작업 없이 전체 관계가 하나의 그룹으로 간주되고 이 그룹에 대해 그룹당 하나의 값이 계산될 수 있습니다.

다시 "세션" 데이터베이스(테이블 R1, R2, R3)로 돌아가서 성공적으로 통과한 시험 수를 찾습니다.

물론 이는 테이블에 있는 행 수에 관계없이 항상 단일 값이 반환되므로 필드를 선택하는 것과 다릅니다. 논쟁 집계 함수별도의 테이블 열이 있을 수 있습니다. 그러나 예를 들어 그룹 내 특정 열의 고유 값 개수를 계산하려면 열 이름과 함께 DISTINCT 키워드를 사용해야 합니다. 각 분야에서 받은 다양한 성적의 수를 계산해 보겠습니다.

결과:

결과에는 그룹화 필드 값과 여러 항목이 포함될 수 있습니다. 집계 함수, 그룹화 조건에서는 여러 필드를 사용할 수 있습니다. 이 경우 지정된 그룹화 필드 집합을 기반으로 그룹이 형성됩니다. 집계 함수 작업을 적용하여 여러 소스 테이블을 조인할 수 있습니다. 예를 들어, 다음과 같은 질문을 해보자: 각 그룹과 각 분야에 대해 성공적으로 시험에 합격한 학생 수와 해당 분야의 평균 점수를 결정합니다.

결과:

우리는 사용할 수 없습니다 집계 함수조건자는 한 줄로 평가되기 때문에 WHERE 절에서 집계 함수- 라인 그룹 측면에서.

GROUP BY 절을 사용하면 특정 필드 값의 하위 집합을 다른 필드와 관련하여 정의하고 해당 하위 집합에 집계 함수를 적용할 수 있습니다. 이를 통해 필드와 필드를 결합할 수 있습니다. 집계 함수단일 SELECT 절에서. 집계 함수 SELECT 행의 결과를 출력하는 표현식과 생성된 HAVING 그룹의 처리 조건에 대한 표현식 모두에서 사용할 수 있습니다. 이 경우 선택한 각 그룹에 대해 각 집계 함수가 계산됩니다. 계산에서 얻은 값 집계 함수, 해당 결과를 표시하거나 그룹 선택을 조건화하는 데 사용할 수 있습니다.

시험의 한 분야에서 둘 이상의 나쁜 점수를 받은 그룹을 표시하는 쿼리를 작성해 보겠습니다.

앞으로는 예를 들어 "Session" 데이터베이스가 아니라 특정 은행 지점의 계좌에 대한 정보가 포함된 관계 F를 저장하는 하나의 테이블 F로 구성된 "Bank" 데이터베이스를 사용하여 작업할 것입니다.

F = (N, 성명, 지점, 개설일, 마감일, 잔액); Q = (지점, 시);

이를 바탕으로 집계 함수 및 그룹화를 사용하여 작업을 보다 명확하게 설명할 수 있기 때문입니다.

예를 들어, 은행 계좌의 총 잔액을 찾고 싶다고 가정해 보겠습니다. 각 지점별 테이블에서 SUM(Balance)을 선택하여 각각 별도의 쿼리를 생성할 수 있습니다. 그러나 GROUP BY를 사용하면 이 모든 것을 하나의 명령에 넣을 수 있습니다.

SELECT 분기, SUM(나머지) FROM F GROUP BY 분기;

GROUP BY가 적용됩니다. 집계 함수 Branch 필드 값을 사용하여 정의된 각 그룹에 대해 독립적입니다. 그룹은 Branch 필드 값이 동일한 행으로 구성되며,

필드 값의 일반화된 그룹 처리를 수행할 수 있습니다. 이는 집계 함수를 사용하여 수행됩니다. 집계 함수는 전체 테이블 그룹에 대해 단일 값을 생성합니다. SQL은 다음과 같은 집계 함수를 제공합니다.

  • 세다– 인수로 지정된 필드의 NULL이 아닌 값이 있는 테이블 행의 개수를 계산합니다.
  • 합집합– 주어진 필드에 대해 선택된 모든 값의 산술 합계를 계산합니다.
  • 평균– 이 필드의 선택된 모든 값의 평균을 구합니다.
  • 최대– 이 필드에 대해 선택된 모든 값 중 가장 큰 값을 표시합니다.
  • 최소– 이 필드에 대해 선택된 모든 값 중 가장 작은 값을 표시합니다.

    집계 함수 사용

    집계 함수는 쿼리의 SELECT 절에 있는 필드 이름과 유사하게 사용되지만 한 가지 예외는 필드 이름을 인수로 사용한다는 점입니다. 숫자 필드만 사용할 수 있습니다. 합집합그리고 평균. 와 함께 세다, 최대, 그리고 최소숫자 필드와 문자 필드를 모두 사용할 수 있습니다. 문자 필드와 함께 사용되는 경우 최대그리고 최소이를 ASCII로 변환합니다. 그것은 다음을 의미합니다 최소첫 번째 것을 선택하고, 최대마지막 값은 알파벳순입니다.

    판매 테이블에서 총 판매 금액을 찾으려면 다음 쿼리를 작성해야 합니다.

    SELECT SUM(SSum) FROM 판매

    결과적으로 우리는 다음을 얻습니다:

    이 쿼리는 Sells 테이블의 SNum 필드에 있는 Null이 아닌 값의 개수를 계산했습니다. 쿼리를 다음과 같이 다시 작성하면:

    셀렉트(SDate) FROM 판매

    결과적으로 우리는 다음을 얻습니다:

    S날짜 수
    4

    동일해 보이는 것을 계산할 때 SDate 필드 값 중 하나가 비어 있기 때문에 다른 쿼리 결과가 얻어집니다( 없는). 이러한 쿼리를 사용할 때는 주의하세요.

요약하는 법을 배우자. 아니요, 이는 SQL을 연구한 결과가 아니라 데이터베이스 테이블의 열 값에 대한 결과입니다. SQL 집계 함수는 열 값에 대해 작동하여 단일 결과 값을 생성합니다. 가장 일반적으로 사용되는 SQL 집계 함수는 SUM, MIN, MAX, AVG 및 COUNT입니다. 집계 함수를 사용하는 경우를 두 가지로 구분할 필요가 있습니다. 첫째, 집계 함수는 자체적으로 사용되며 단일 결과 값을 반환합니다. 둘째, SQL GROUP BY 절과 함께 집계 함수를 사용하는데, 즉 필드(열)별로 그룹화하여 각 그룹의 결과 값을 얻는다. 먼저 그룹화하지 않고 집계 함수를 사용하는 경우를 고려해 보겠습니다.

SQL SUM 함수

SQL SUM 함수는 데이터베이스 테이블 열에 있는 값의 합계를 반환합니다. 값이 숫자인 열에만 적용할 수 있습니다. 결과 합계를 얻기 위한 SQL 쿼리는 다음과 같이 시작됩니다.

합계 선택(COLUMN_NAME) ...

이 표현식 뒤에는 FROM(TABLE_NAME)이 오고 WHERE 절을 사용하여 조건을 지정할 수 있습니다. 또한, 컬럼 이름 앞에는 DISTINCT가 올 수 있는데, 이는 고유한 값만 계산된다는 의미입니다. 기본적으로 모든 값이 고려됩니다. 이를 위해 DISTINCT가 아닌 ALL을 구체적으로 지정할 수 있지만 ALL이라는 단어는 필요하지 않습니다.

예시 1.부서와 직원에 대한 데이터가 포함된 회사 데이터베이스가 있습니다. Staff 테이블에는 직원 급여에 대한 데이터가 포함된 열도 있습니다. 표에서 선택한 내용은 다음과 같습니다(그림을 확대하려면 마우스 왼쪽 버튼으로 클릭하세요).

모든 급여의 합계를 얻으려면 다음 쿼리를 사용하십시오.

직원으로부터 SUM(급여) 선택

이 쿼리는 287664.63 값을 반환합니다.

그리고 지금 . 연습에서 우리는 이미 작업을 복잡하게 만들기 시작하여 실제 작업과 더 가까워졌습니다.

SQL MIN 함수

SQL MIN 함수는 값이 숫자인 열에서도 작동하며 열에 있는 모든 값의 최소값을 반환합니다. 이 함수는 SUM 함수와 유사한 구문을 갖습니다.

예시 3.데이터베이스와 테이블은 예제 1과 동일합니다.

42번 부서 직원의 최저 임금을 알아내야 합니다. 이렇게 하려면 다음 요청을 작성하세요.

쿼리는 10505.90 값을 반환합니다.

그리고 다시 자기 해결을 위한 연습. 이 연습과 다른 연습에서는 Staff 테이블뿐만 아니라 회사 부서에 대한 데이터가 포함된 Org 테이블도 필요합니다.


예시 4.회사 부서에 대한 데이터가 포함된 Org 테이블이 Staff 테이블에 추가됩니다. 보스턴에 위치한 부서에서 한 직원이 근무한 최소 연수를 출력하십시오.

SQL MAX 함수

SQL MAX 함수는 유사하게 작동하며 유사한 구문을 가지고 있는데, 이는 열의 모든 값 중 최대값을 결정해야 할 때 사용됩니다.

실시예 5.

부서 번호 42 직원의 최대 급여를 알아내야 합니다. 이렇게 하려면 다음 요청을 작성하십시오.

쿼리는 18352.80 값을 반환합니다.

때가됐다 독립적인 해결을 위한 연습.

예시 6.이번에도 Staff와 Org라는 두 개의 테이블을 사용하여 작업합니다. 부서명과 동부 부서 그룹(Division)에 속하는 부서의 직원 한 명이 받는 커미션의 최대 값을 표시합니다. 사용 JOIN(테이블 조인) .

SQL AVG 함수

설명된 이전 함수의 구문과 관련하여 언급된 내용은 SQL AVG 함수에도 적용됩니다. 이 함수는 열에 있는 모든 값의 평균을 반환합니다.

실시예 7.데이터베이스와 테이블은 이전 예제와 동일합니다.

부서 번호 42 직원의 평균 근속 기간을 알아내려고 한다고 가정합니다. 이를 위해 다음 쿼리를 작성합니다.

결과는 6.33이 됩니다.

실시예 8.우리는 하나의 테이블, 즉 직원과 함께 일합니다. 경력이 4~6년인 직원의 평균 급여를 표시합니다.

SQL COUNT 함수

SQL COUNT 함수는 데이터베이스 테이블의 레코드 수를 반환합니다. 쿼리에 SELECT COUNT(COLUMN_NAME) ...을 지정하면 결과는 열 값이 NULL(정의되지 않음)인 레코드를 고려하지 않고 레코드 개수가 됩니다. 별표를 인수로 사용하고 SELECT COUNT(*) ... 쿼리를 시작하면 결과는 테이블의 모든 레코드(행) 개수가 됩니다.

실시예 9.데이터베이스와 테이블은 이전 예제와 동일합니다.

커미션을 받는 모든 직원의 수를 알고 싶습니다. Comm 열 값이 NULL이 아닌 직원 수는 다음 쿼리에 의해 반환됩니다.

SELECT COUNT(Comm) FROM 직원

결과는 11이 됩니다.

실시예 10.데이터베이스와 테이블은 이전 예제와 동일합니다.

테이블의 총 레코드 수를 확인하려면 COUNT 함수에 대한 인수로 별표가 포함된 쿼리를 사용하세요.

직원으로부터 개수(*) 선택

결과는 17이 됩니다.

다음에 독립적인 해결을 위한 운동하위 쿼리를 사용해야 합니다.

실시예 11.우리는 하나의 테이블, 즉 직원과 함께 일합니다. 기획부서(평원)의 직원 수를 표시합니다.

SQL GROUP BY를 사용한 집계 함수

이제 SQL GROUP BY 문과 함께 집계 함수를 사용하는 방법을 살펴보겠습니다. SQL GROUP BY 문은 데이터베이스 테이블의 열별로 결과 값을 그룹화하는 데 사용됩니다.

실시예 12.광고 포털의 데이터베이스가 있습니다. 여기에는 해당 주에 제출된 광고에 대한 데이터가 포함된 광고 테이블이 있습니다. 카테고리 열에는 대규모 광고 카테고리(예: 부동산)에 대한 데이터가 포함되고, 부품 열에는 카테고리에 포함된 작은 부분에 대한 데이터가 포함됩니다(예: 아파트 및 여름 주택 부분은 부동산 카테고리의 일부임). Units 열에는 제출된 광고 수에 대한 데이터가 포함되고, Money 열에는 광고 제출로 받은 금액에 대한 데이터가 포함됩니다.

범주부분단위
수송자동차110 17600
부동산아파트89 18690
부동산다차스57 11970
수송오토바이131 20960
건축 자재무대68 7140
전기 공학TV127 8255
전기 공학냉장고137 8905
건축 자재레지프스112 11760
여가서적96 6240
부동산집에서47 9870
여가음악117 7605
여가계략41 2665

SQL GROUP BY 문을 이용하여 각 카테고리에 광고를 게재하여 벌어들인 수익을 알아보세요. 우리는 다음 요청을 작성합니다.

안녕하세요! 오늘은 SQL의 집계 함수에 대해 알아보고 이전 강의에서 만든 테이블의 데이터로 해당 함수가 작동하는 방식을 자세히 분석하겠습니다.

일반 개념

지난 강의에서는 데이터에 대한 쿼리를 작성하는 방법을 배웠습니다. 집계 함수는 수신된 데이터를 어떻게든 일반화할 수 있도록, 즉 원하는 방식으로 조작할 수 있도록 존재합니다.

이러한 기능은 SELECT 쿼리에 포함된 키워드를 사용하여 수행되며, 작성 방법은 아래에서 설명합니다. 명확하게 말하면 SQL의 집계 함수 기능 중 일부는 다음과 같습니다.

  • 선택한 값 합계
  • 값의 산술 평균 찾기
  • 최소값과 최대값 찾기

SQL 집계 함수 예

가장 일반적으로 사용되는 기능을 살펴보고 몇 가지 예를 들어보겠습니다.

SUM 함수

이 기능을 사용하면 SELECT 쿼리 중에 모든 필드의 값을 합산할 수 있습니다. SQL의 다른 모든 집계 함수와 마찬가지로 구문이 매우 간단한 매우 유용한 함수입니다. 이해하기 위해 예부터 시작해 보겠습니다.

Orders 테이블에서 2016년에 이루어진 모든 주문의 합계를 가져옵니다.

단순히 주문량만 표시해도 되지만, 이건 꽤 간단한 것 같습니다. 테이블의 구조를 기억해 보겠습니다.

오눔오전날짜cnum스넘
1001 128 2016-01-01 9 4
1002 1800 2016-04-10 10 7
1003 348 2017-04-08 2 1
1004 500 2016-06-07 3 3
1005 499 2017-12-04 5 4
1006 320 2016-03-03 5 4
1007 80 2017-09-02 7 1
1008 780 2016-03-07 1 3
1009 560 2017-10-07 3 7
1010 900 2016-01-08 6 8

다음 코드는 필요한 선택을 수행합니다.

SELECT SUM (amt) FROM Orders WHERE date BETWEEN "2016-01-01" and "2016-12-31" ;

결과적으로 우리는 다음을 얻습니다:

합계(amt)
4428

이 쿼리에서 우리는 SUM 함수, 그 다음에는 합계 필드를 괄호 안에 표시해야 합니다. 그런 다음 WHERE에 조건을 지정하여 2016년의 행만 선택했습니다. 실제로 이 조건은 다르게 작성할 수 있지만 이제는 SQL의 집계 합계 함수가 더 중요합니다.

AVG 기능

다음 함수는 매개변수로 지정한 데이터 필드의 산술 평균을 계산합니다. 이러한 함수의 구문은 합산 함수와 동일합니다. 이제 가장 간단한 작업으로 넘어 갑시다.

주문 테이블의 평균 주문 값을 표시합니다.

그리고 즉시 요청합니다.

주문에서 AVG(amt)를 선택합니다.

결과적으로 우리는 다음을 얻습니다:

이전 함수와 달리 이 2개 함수는 문자 매개변수와 함께 작동할 수 있다는 점도 주목할 만합니다. 즉, 다음과 같은 쿼리를 작성할 수 있습니다. MIN(날짜)(이 경우 날짜는 상징적입니다.) 그러면 2016-01-01이 반환됩니다.

사실 이러한 함수에는 문자를 ASCII 코드로 변환한 후 비교하는 메커니즘이 있습니다.

또 다른 중요한 점은 SELECT 쿼리에서 다음과 같이 간단한 계산을 수행할 수 있다는 것입니다.

SELECT (MAX(amt) - MIN(amt)) AS "차이" FROM 주문;

다음 응답이 반환됩니다.

물론 주문수량은 10개인데 갑자기 테이블이 커지면 이 기능이 매우 편리할 것 같습니다. 고유한 판매자의 경우 한 판매자가 여러 주문을 처리할 수 있으므로 DISTINCT를 사용해야 합니다.

GROUP BY 연산자

이제 SQL에서 쿼리 기능을 확장하는 데 도움이 되는 두 가지 중요한 연산자를 살펴보겠습니다. 첫 번째는 때때로 필요한 일부 필드별로 그룹화를 수행하는 GROUP BY 연산자입니다. 그리고 이 그룹에 대해서는 지정된 작업을 수행합니다. 예를 들어:

각 판매자의 모든 주문 합계를 별도로 표시합니다.

즉, 이제 Orders 테이블에서 각 판매자의 주문 가격이 포함된 필드를 선택하고 이를 합산해야 합니다. SQL의 GROUP BY 문은 이 모든 작업을 매우 쉽게 수행합니다.

SELECT snum, SUM(amt) AS "모든 주문의 합계" FROM 주문 GROUP BY snum;

그리고 결국 우리는 다음을 얻습니다:

스넘모든 주문의 합계
1 428
3 1280
4 947
7 2360
8 900

보시다시피 SQL은 각 판매자에 대한 그룹을 할당하고 모든 주문의 합계를 계산했습니다.

HAVING 연산자

이 연산자는 이전 연산자에 대한 보완으로 사용됩니다. 그룹화 시 데이터 샘플링 조건을 설정하기 위해 필요합니다. 조건이 충족되면 그룹이 할당되고, 그렇지 않으면 아무 일도 일어나지 않습니다. 다음 코드를 고려해보세요.

SELECT snum, SUM(amt) AS "모든 주문의 합계" FROM 주문 GROUP BY snum HAVING MAX (amt) > 1000;

최대 주문 금액이 1000을 초과하는 경우에만 판매자를 위한 그룹을 생성하고 이 그룹의 주문 금액을 계산합니다. 분명히 그러한 판매자는 단 한 명뿐이며 그룹은 그 사람에게 할당되고 모든 합계 주문은 다음과 같이 계산됩니다.

스넘모든 주문의 합계
7 2360

여기서는 WHERE 조건을 사용하지 않는 것이 좋을 것 같지만, SQL은 이 경우 오류를 생성하는 방식으로 구축되어 있으며 이것이 바로 SQL에 HAVING 연산자가 있는 이유입니다.

SQL의 집계 함수에 대한 예

1. 2016년 1월 1일에 완료된 전체 주문 금액을 계산하는 쿼리를 작성합니다.

SELECT SUM (amt) FROM 주문 WHERE odate = "2016-01-01" ;

2. 고객 테이블의 도시 필드에 대해 NULL이 아닌 고유한 값의 개수를 계산하는 쿼리를 작성합니다.

고객으로부터 COUNT(개별 도시)를 선택하세요.

3. 각 고객에 대해 가장 작은 금액을 선택하는 쿼리를 작성합니다.

SELECT cnum, MIN (amt) FROM 주문 GROUP BY cnum;

4. 이름이 문자 G로 시작하는 고객을 선택하는 쿼리를 작성합니다.

고객으로부터 cname을 선택하세요. WHERE cname LIKE "Y%" ;

5. 각 도시에서 가장 높은 순위를 선택하는 쿼리를 작성합니다.

SELECT 도시, MAX(등급) FROM 고객 GROUP BY 도시;

결론

이것이 우리가 끝날 곳입니다. 이번 글에서는 SQL의 집계 함수에 대해 알아보았습니다. 차후에 유용하게 활용될 수 있는 기본 개념과 기본 예제를 살펴보았습니다.

궁금한 점이 있으면 댓글로 물어보세요.

이번 강의에서는 서비스 단어 AS를 사용하여 SQL에서 열(필드) 이름을 바꾸는 주제를 다룹니다. SQL의 집계 함수 주제도 다룹니다. 요청의 구체적인 예가 논의됩니다.

쿼리의 열 이름은 바꿀 수 있습니다. 이렇게 하면 결과를 더 쉽게 읽을 수 있습니다.

SQL에서 필드 이름 바꾸기에는 다음을 사용하는 작업이 포함됩니다. AS 키워드, 결과 세트에서 필드 이름을 바꾸는 데 사용됩니다.

통사론:

선택하다<имя поля>처럼<псевдоним>에서...

SQL에서 이름을 바꾸는 예를 살펴보겠습니다.

"연구소" 데이터베이스의 예:교사의 이름과 급여를 표시합니다. 급여가 15,000 미만인 교사의 경우 zarplata 필드 이름을 다음으로 바꿉니다. "낮은 급여"


✍ 해결책:

SQL에서 열 이름을 바꾸는 것이 필요한 경우가 많습니다. 여러 필드와 연관된 값을 계산할 때테이블. 예를 살펴보겠습니다:

"연구소" 데이터베이스의 예:교사 테이블에서 이름 필드를 표시하고 급여 및 보너스 금액을 계산하여 필드 이름을 지정합니다. "급여_보너스"


✍ 해결책:
1 2 SELECT 이름, (zarplata+ premia) AS zarplata_premia FROM 교사;

SELECT 이름, (zarplata+premia) AS zarplata_premia FROM 교사;

결과:

SQL의 집계 함수

총 값을 얻고 표현식을 평가하려면 SQL의 집계 함수가 사용됩니다.

모든 집계 함수는 단일 값을 반환합니다.

COUNT, MIN 및 MAX 함수는 모든 데이터 유형에 적용됩니다.

SUM 및 AVG 함수는 숫자 필드에만 사용됩니다.
COUNT(*) 함수와 COUNT() 함수에는 차이가 있습니다. 두 번째 함수는 계산할 때 NULL 값을 고려하지 않습니다.

중요한: SQL에서 집계 함수를 사용할 때 함수 단어가 사용됩니다. 처럼


"연구소" 데이터베이스의 예:교사 중 가장 높은 급여의 값을 구하고 그 결과를 다음과 같이 표시합니다. "최대 급여"


✍ 해결책:
SELECT MAX (zarplata) AS max_salary FROM 교사;

SELECT MAX(zarplata) AS max_salary FROM 교사;

결과:

SQL에서 집계 함수를 사용하는 좀 더 복잡한 예를 살펴보겠습니다.


✍ 해결책:

SQL의 GROUP BY 절

SQL의 그룹화 연산자는 일반적으로 집계 함수와 함께 사용됩니다.

집계 함수는 모든 결과 쿼리 행에서 실행됩니다. 쿼리에 GROUP BY 절이 포함된 경우 GROUP BY 절에 지정된 각 행 집합이 그룹을 구성하고 집계 함수가 실행됩니다. 각 그룹마다 별도로.

수업 테이블의 예를 살펴보겠습니다.

예:

중요한:따라서 GROUP BY를 사용하면 모든 쿼리 출력 행이 해당 열의 동일한 값 조합을 특징으로 하는 그룹으로 구분됩니다(즉, 집계 함수가 각 그룹에서 별도로 수행됩니다).

NULL 값을 포함하는 필드를 기준으로 그룹화할 때 이러한 모든 레코드가 하나의 그룹에 속한다는 점을 고려해 볼 가치가 있습니다.

다양한 유형의 프린터에 대해 평균 비용과 수량을 결정합니다(예: 레이저, 잉크젯 및 매트릭스에 대해 별도로). 집계 함수를 사용합니다. 결과는 다음과 같아야 합니다.

SQL문이 있는 경우

값을 확인하려면 SQL의 HAVING 절이 필요합니다. 그룹화 후 집계 함수를 사용하여 얻은(GROUP BY를 사용한 후). 이런 수표 WHERE 절에 포함될 수 없습니다..

예: DB컴퓨터매장. 동일한 프로세서 속도를 가진 컴퓨터의 평균 가격을 계산합니다. 평균 가격이 30,000 미만인 그룹에 대해서만 계산을 수행합니다.



질문이 있으신가요?

오타 신고

편집자에게 전송될 텍스트: