>데이터 베이스 >MySQL 튜토리얼 >MySQL 데이터 쿼리: 집합/집계 함수를 사용한 쿼리

MySQL 데이터 쿼리: 집합/집계 함수를 사용한 쿼리

coldplay.xixi
coldplay.xixi앞으로
2021-03-12 09:23:422934검색

MySQL 데이터 쿼리: 집합/집계 함수를 사용한 쿼리

MySQL 집계 함수는 다음과 같습니다.

function function
avg() 특정 열의 평균을 반환합니다
count() 반품 횟수 열의 행
max() 특정 열의 최대값을 반환
min() 특정 열의 최소값을 반환
sum() 합계를 반환 특정 열의 값

(1)count() function
(2)sum() function
(3)avg() function
(4)max() function
(5)min () function


(무료 학습 권장 사항: mysql 비디오 튜토리얼)

(1)count() function
  • count() 함수는 데이터에 포함된 레코드 행의 총 개수를 계산합니다. 테이블에 포함된 데이터 행의 개수를 반환하거나 쿼리 결과를 기반으로 해당 열에 포함된 데이터 행의 수를 반환하는 경우 두 가지 사용 방법이 있습니다.
    ①count(*)는 열에 값이 있거나 값이 있는지 여부에 관계없이 테이블의 전체 행 수를 계산합니다. 널값.
    ②count(필드 이름)는 지정된 열 아래의 총 행 수를 계산합니다. Null 값이 있는 행은 계산 중에 무시됩니다.

[예제 1] 고객 테이블의 전체 행 수를 쿼리하는 SQL 문은 다음과 같습니다.

mysql> select count(*) as cust_num    -> from customers;+----------+| cust_num |+----------+|        4 |+----------+1 row in set (0.06 sec)

질의 결과에서 count(*)는 고객 테이블에 기록된 전체 행 수를 반환하고, 그 가치에 관계없이. 반환된 합계의 이름은 cust_num입니다.

[예제 2] 고객 테이블에 이메일 주소가 있는 전체 고객 수를 쿼리하기 위한 SQL 문은 다음과 같습니다.

mysql> select count(c_email) as email_num    -> from customers;+-----------+| email_num |+-----------+|         3 |+-----------+1 row in set (0.00 sec)

위 두 예의 결과가 다른 것은 두 메소드가 null 값을 다르게 처리함을 나타냅니다. 합계를 계산할 때, 즉 컬럼을 지정하면 빈 값이 있는 행은 count() 함수에서 무시되지만, 컬럼을 지정하지 않고 count() 함수에 *를 사용하면 모든 레코드가 무시되지 않습니다.

【예제 3】orderitems 테이블에서 group by 키워드와 함께 count() 함수를 사용하여 서로 다른 그룹의 총 레코드 수를 계산합니다.

mysql> select o_num,count(f_id)
    -> from orderitems    -> group by o_num;+-------+-------------+| o_num | count(f_id) |+-------+-------------+| 30001 |           4 || 30002 |           1 || 30003 |           1 || 30004 |           1 || 30005 |           4 |+-------+-------------+5 rows in set (0.00 sec)
(2)sum() 함수
  • sum은 지정된 열 값의 합계를 반환하는 합계 함수입니다.

[예제] orderitems 테이블에서 주문 30005에 대해 구매한 과일의 총량을 쿼리합니다. SQL 문은 다음과 같습니다.

mysql> select sum(quantity) as items_total    -> from orderitems    -> where o_num = 30005;+-------------+| items_total |+-------------+|          30 |+-------------+1 row in set (0.05 sec)

sum()을 group by와 함께 사용하여 각 그룹의 합계를 계산할 수 있습니다.

[예제] orderitems 테이블에서 sum() 함수를 사용하여 다양한 주문 번호로 주문한 과일의 총량을 계산합니다. SQL 문은 다음과 같습니다.

mysql> select o_num,sum(quantity) as items_total    -> from orderitems    -> group by o_num;+-------+-------------+| o_num | items_total |+-------+-------------+| 30001 |          33 || 30002 |           2 || 30003 |         100 || 30004 |          50 || 30005 |          30 |+-------+-------------+5 rows in set (0.00 sec)

계산 시 sum 함수는 null 값이 있는 행을 무시합니다. .

(3)avg() 함수
  • avg() 함수는 반환된 행 수와 각 열의 데이터 합계를 계산하여 지정된 열 데이터의 평균을 계산합니다.
  • avg() 함수를 사용하는 경우 해당 매개변수는 계산할 열의 이름입니다. 여러 열의 여러 평균을 얻으려면 각 열에 대해 avg() 함수를 사용해야 합니다.

[예제 1] 과일 테이블에서 s_id=103인 공급자의 평균 과일 가격을 쿼리합니다. SQL 문은 다음과 같습니다.

mysql> select avg(f_price) as avg_price    -> from fruits    -> where s_id = 103;+-----------+| avg_price |+-----------+|  5.700000 |+-----------+1 row in set (0.05 sec)

[예 2] 과일 테이블에서 각 과일 가격을 쿼리합니다. 공급자 평균값, SQL 문은 다음과 같습니다.

mysql> select s_id,avg(f_price) as avg_price    -> from fruits    -> group by s_id;+------+-----------+| s_id | avg_price |+------+-----------+|  104 |  7.000000 ||  101 |  6.200000 ||  103 |  5.700000 ||  107 |  3.600000 ||  102 |  8.933333 ||  105 |  7.466667 ||  106 | 15.700000 |+------+-----------+7 rows in set (0.00 sec)

group by 키워드 s_id 필드에 따라 레코드를 그룹화한 후 각 그룹의 평균값을 계산하는 그룹 평균 방법은 매우 유용합니다. 예를 들어, 다양한 학급의 학생들의 평균 점수를 찾아보고, 다양한 부서의 직원들의 평균 급여를 찾아보고, 다양한 장소의 연평균 기온을 찾아보세요.

(4)max() 함수
  • max()는 지정된 열의 최대값을 반환합니다.
  • max() 함수는 가장 큰 열 값이나 날짜 값을 찾는 것 외에도 문자 유형의 최대값 반환을 포함하여 모든 열의 최대값을 반환할 수도 있습니다.

【예제 1】과일 테이블에서 시장에서 가장 높은 가격의 과일 값을 찾으세요. SQL 문은 다음과 같습니다.

mysql> select max(f_price) as max_price from fruits;+-----------+| max_price |+-----------+|     15.70 |+-----------+1 row in set (0.05 sec)

【예제 2】과일 테이블에서 여러 공급자가 제공하는 최고 가격의 과일 값을 찾습니다. SQL 문은 다음과 같습니다.

mysql> select s_id,max(f_price) as max_price    -> from fruits    -> group by s_id;+------+-----------+| s_id | max_price |+------+-----------+|  104 |      7.60 ||  101 |     10.20 ||  103 |      9.20 ||  107 |      3.60 ||  102 |     11.20 ||  105 |     11.60 ||  106 |     15.70 |+------+-----------+7 rows in set (0.00 sec)

[예제 3] 과일 테이블에서 f_name의 최대값을 찾습니다. SQL 문은 다음과 같습니다.

mysql> select max(f_name) from fruits;+-------------+| max(f_name) |+-------------+| xxxx        |+-------------+1 row in set (0.00 sec)
(5)min() 함수

- min()은 쿼리 열의 최소값입니다.

[예제 1] 과일 테이블에서 시장에서 가장 저렴한 과일 가격을 찾습니다. SQL 문은 다음과 같습니다.

mysql> select min(f_price) as min_price    -> from fruits;+-----------+| min_price |+-----------+|      2.20 |+-----------+1 row in set (0.00 sec)

[예 2] 과일 테이블에서 여러 공급자가 제공하는 최저가 과일 주스를 찾습니다. .SQL 문은 다음과 같습니다.

mysql> select s_id,min(f_price) as min_price    -> from fruits    -> group by s_id;+------+-------------+| s_id | min_price |+------+-------------+|  104 |        6.40 ||  101 |        3.20 ||  103 |        2.20 ||  107 |        3.60 ||  102 |        5.30 ||  105 |        2.60 ||  106 |       15.70 |+------+-------------+7 rows in set (0.00 sec)

관련 무료 학습 권장 사항: mysql 데이터베이스(동영상)

위 내용은 MySQL 데이터 쿼리: 집합/집계 함수를 사용한 쿼리의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 csdn.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제