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] 고객 테이블의 전체 행 수를 쿼리하는 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)
[예제] 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 값이 있는 행을 무시합니다. .
[예제 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 필드에 따라 레코드를 그룹화한 후 각 그룹의 평균값을 계산하는 그룹 평균 방법은 매우 유용합니다. 예를 들어, 다양한 학급의 학생들의 평균 점수를 찾아보고, 다양한 부서의 직원들의 평균 급여를 찾아보고, 다양한 장소의 연평균 기온을 찾아보세요.
【예제 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)
- 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!