MySQL에서 평균값을 찾는 방법
mysql에서는 AVG() 함수를 사용하여 평균을 구할 수 있습니다. 이 함수는 "SELECT AVG;" 구문을 사용하여 반환된 행 수와 각 데이터 행의 합계를 계산하여 지정된 열 데이터의 평균을 계산할 수 있습니다. (열_이름) FROM" 테이블_이름".
이 튜토리얼의 운영 환경: windows7 시스템, mysql8 버전, Dell G3 컴퓨터.
mysql에서는 AVG() 함수를 사용하여 평균을 구할 수 있습니다.
MySQL AVG() 함수는 일련의 값 또는 표현식의 평균을 계산하는 데 사용되는 집계 함수입니다.
AVG() 함수는 반환된 행 수와 각 데이터 행의 합계를 계산하여 지정된 열 데이터의 평균을 찾을 수 있습니다.
AVG() 함수의 구문은 다음과 같습니다.
SELECT AVG(column_name) FROM table_name;
DISTINCT 연산자를 AVG() 함수에 추가하여 다양한 값의 평균을 계산할 수도 있습니다. 예를 들어, 1
, 1
, 2
, 3
, AVG( ) DISTINCT 연산 사용 이 함수는 다양한 값의 합계, 즉 (1 + 2 + 3)/3 = 2.00
을 반환합니다. 1
、1
、2
、3
,具有DISTINCT操作的AVG()函数将返回不同值的和,即:(1 + 2 + 3)/3 = 2.00
。
MySQL AVG示例
我们将在示例数据库中使用products
表进行演示,下图是products
表的结构 -
mysql> desc products; +--------------------+---------------+------+-----+---------+------------------+ | Field | Type | Null | Key | Default | Extra | +--------------------+---------------+------+-----+---------+------------------+ | productCode | varchar(15) | NO | PRI | | | | productName | varchar(70) | NO | MUL | NULL | | | productLine | varchar(50) | NO | MUL | NULL | | | productScale | varchar(10) | NO | | NULL | | | productVendor | varchar(50) | NO | | NULL | | | productDescription | text | NO | | NULL | | | quantityInStock | smallint(6) | NO | | NULL | | | buyPrice | decimal(10,2) | NO | | NULL | | | MSRP | decimal(10,2) | NO | | NULL | | | stockValue | double | YES | | NULL | STORED GENERATED | +--------------------+---------------+------+-----+---------+------------------+ 10 rows in set
要计算products
表中所有产品的平均价格,可以使用AVG函数,如下查询:
SELECT AVG(buyprice) 'Avarage Price' FROM products;
执行上面查询语句,得到以下结果 -
mysql> SELECT AVG(buyprice) 'Avarage Price' FROM products; +---------------+ | Avarage Price | +---------------+ | 54.395182 | +---------------+ 1 row in set
请注意,FORMAT
函数用于格式化AVG
函数返回的平均值。
您可以向SELECT
语句添加一个WHERE
子句来计算子集值的平均值。 例如,要计算产品线为Classic Cars
的产品的平均价格,您可以使用以下查询:
SELECT AVG(buyprice) 'Avarage Classic Cars Price' FROM products WHERE productline = 'Classic Cars';
执行上面查询语句,得到以下结果 -
mysql> SELECT AVG(buyprice) 'Avarage Classic Cars Price' FROM products WHERE productline = 'Classic Cars'; +----------------------------+ | Avarage Classic Cars Price | +----------------------------+ | 64.446316 | +----------------------------+ 1 row in set
具有DISTINCT的MySQL AVG()函数
有些产品价格相同,可以使用以下查询来检查它:
SELECT COUNT(buyprice) - COUNT(DISTINCT buyprice) FROM products;
执行上面查询语句,得到以下结果 -
mysql> SELECT COUNT(buyprice) - COUNT(DISTINCT buyprice) FROM products; +--------------------------------------------+ | COUNT(buyprice) - COUNT(DISTINCT buyprice) | +--------------------------------------------+ | 2 | +--------------------------------------------+ 1 row in set
可以使用AVG()函数通过添加DISTINCT
运算符来计算不同价格的平均值,如下所示:
SELECT AVG(DISTINCT buyprice) FROM products;
执行上面查询语句,得到以下结果 -
mysql> SELECT AVG(DISTINCT buyprice) FROM products; +------------------------+ | AVG(DISTINCT buyprice) | +------------------------+ | 54.372870 | +------------------------+ 1 row in set
结果与使用DISTINCT
操作符的平均价格略有不同。
具有GROUP BY子句的MySQL AVG
我们经常使用AVG函数与GROUP BY
子句一起计算表中每组行的平均值。
例如,要计算每个产品线的产品的平均价格,您将使用带有GROUP BY
子句的AVG函数,如下查询语句:
SELECT productline, AVG(buyprice) 'Avarage Price' FROM products GROUP BY productline;
执行上面查询语句,得到以下结果 -
mysql> SELECT productline, AVG(buyprice) 'Avarage Price' FROM products GROUP BY productline; +------------------+---------------+ | productline | Avarage Price | +------------------+---------------+ | Classic Cars | 64.446316 | | Motorcycles | 50.685385 | | Planes | 49.629167 | | Ships | 47.007778 | | Trains | 43.923333 | | Trucks and Buses | 56.329091 | | Vintage Cars | 46.066250 | +------------------+---------------+ 7 rows in set
具有HAVING子句的MySQL AVG
您可以使用AVG函数中的HAVING
子句中为分组的平均值设置条件。 例如,如果要仅选择产品平均价格大于50
的产品线,则可以使用以下查询:
SELECT productline, AVG(buyprice) 'Avarage Price' FROM products GROUP BY productline HAVING AVG(buyprice) > 50;
执行上面查询语句,得到以下结果 -
mysql> SELECT productline, AVG(buyprice) 'Avarage Price' FROM products GROUP BY productline HAVING AVG(buyprice) > 50; +------------------+---------------+ | productline | Avarage Price | +------------------+---------------+ | Classic Cars | 64.446316 | | Motorcycles | 50.685385 | | Trucks and Buses | 56.329091 | +------------------+---------------+ 3 rows in set
MySQL AVG()函数与子查询
您可以在SQL语句中多次使用AVG()函数来计算一组平均值的平均值。 例如,可以计算产品线平均购买价格的平均买价如下:
SELECT AVG(pl_avg) 'Average Product' FROM ( SELECT AVG(buyprice) pl_avg FROM products GROUP BY productline ) avgs;
执行上面查询语句,得到以下结果 -
mysql> SELECT AVG(pl_avg) 'Average Product' FROM ( SELECT AVG(buyprice) pl_avg FROM products GROUP BY productline ) avgs; +-----------------+ | Average Product | +-----------------+ | 51.1553314286 | +-----------------+ 1 row in set
怎么运行的 -
- 子查询根据产品线计算平均购买价格。
- 外部查询计算从子查询返回的产品线的平均购买价格的平均购买价格。
具有NULL值的MySQL AVG函数
AVG()函数忽略计算中的NULL
值,请参阅以下示例:
首先,创建一个名为t
的新表,其中有两列id
和val
,val
列可以包含NULL
值。
CREATE TABLE IF NOT EXISTS t( id int auto_increment primary key, val int );
其次,在t
表中插入一些行,包括NULL
值。
INSERT INTO t(val) VALUES(1),(2),(nulL),(3);
第三,使用AVG()
函数计算val
列中值的平均值:
SELECT AVG(val) FROM t;
执行上面查询语句,得到以下结果 -
mysql> SELECT AVG(val) FROM t; +----------+ | AVG(val) | +----------+ | 2.0000 | +----------+ 1 row in set
该语句按预期返回2
,因为在AVG函数的计算中不包括NULL
值。
具有控制流函数的MySQL AVG
要计算列的平均值,并在单个语句中有条件地计算相同列的平均值,可以使用具有控制流函数(如IF
,CASE
,IFNULL
,NULLIF
等)的AVG函数。
例如,要计算Classic Cars
产品线的平均价格与所有产品的平均价格的比例,请使用以下声明:
SELECT AVG(IF(productline='Classic Cars',buyprice,NULL)) / AVG(buyprice) 'Classic Cars/ Products' FROM products;
执行上面查询语句,得到以下结果 -
mysql> SELECT AVG(IF(productline='Classic Cars',buyprice,NULL)) / AVG(buyprice) 'Classic Cars/ Products' FROM products; +------------------------+ | Classic Cars/ Products | +------------------------+ | 1.1847798580 | +------------------------+ 1 row in set
如果产品线是Classic Cars
,则IF(productline='Classic Cars',buyprice,NULL)
表达式返回价格,否则返回NULL
MySQL AVG 예시
시연을 위해 샘플 데이터베이스의products
테이블을 사용하겠습니다. 아래 그림은 products입니다. 코드> 테이블의 구조-🎜rrreee🎜 <code>products
테이블에 있는 모든 제품의 평균 가격을 계산하려면 다음 쿼리와 같이 AVG 함수를 사용할 수 있습니다. 🎜rrreee🎜 위 쿼리문을 실행하면 다음과 같은 결과가 나옵니다-🎜rrreee🎜 FORMAT
함수는 AVG
함수에서 반환되는 평균값의 형식을 지정하는 데 사용됩니다. 🎜🎜SELECT
문에 WHERE
절을 추가하여 값 하위 집합의 평균을 계산할 수 있습니다. 예를 들어 Classic Cars
제품군이 포함된 제품의 평균 가격을 계산하려면 다음 쿼리를 사용할 수 있습니다. 🎜rrreee🎜위 쿼리 문을 실행하면 다음 결과를 얻을 수 있습니다.-🎜rrreee🎜MySQL AVG() 함수와 DISTINCT🎜
🎜일부 제품의 가격이 동일하므로 다음 쿼리를 사용하여 확인할 수 있습니다. 🎜rrreee🎜위를 실행합니다. 쿼리 문을 사용하면 다음 결과를 얻을 수 있습니다. 🎜rrreee 🎜AVG() 함수를 사용하면 아래와 같이DISTINCT
연산자를 추가하여 다양한 가격의 평균을 계산할 수 있습니다. 🎜rrreee🎜위 쿼리를 실행합니다. 명령문을 실행하고 다음 결과를 얻습니다. -🎜rrreee🎜결과 및 사용법DISTINCT 연산자의 평균 가격은 약간 다릅니다. 🎜🎜GROUP BY 절이 있는 MySQL AVG🎜
🎜우리는GROUP BY
절이 있는 AVG 함수를 자주 사용합니다. 테이블에 있는 각 행 집합의 평균입니다. 🎜🎜예를 들어 각 제품군의 제품 평균 가격을 계산하려면 다음 쿼리와 같이 GROUP BY
절과 함께 AVG 함수를 사용합니다. 🎜rrreee🎜위 쿼리를 실행하고 다음 결과를 얻습니다. - 🎜rrreee🎜HAVING 절이 있는 MySQL AVG🎜
🎜AVG에서HAVING
절을 사용할 수 있습니다. 기능 에서 그룹 평균에 대한 조건을 설정합니다. 예를 들어, 평균 제품 가격이 50
보다 큰 제품군만 선택하려는 경우 다음 쿼리를 사용할 수 있습니다. 🎜rrreee🎜위 쿼리 문을 실행하면 다음 결과가 나타납니다.🎜rrreee 🎜MySQL AVG() 함수 및 하위 쿼리🎜
🎜SQL 문에서 AVG() 함수를 여러 번 사용하여 평균 집합의 평균을 계산할 수 있습니다. . 예를 들어 해당 제품군의 평균 구매 가격은 다음과 같이 계산할 수 있습니다. 🎜rrreee🎜위 쿼리문을 실행하면 다음과 같은 결과가 나옵니다-🎜rrreee🎜작동 방식-🎜- 🎜하위 쿼리🎜제품 라인 구매 가격을 기준으로 평균을 계산합니다.
- 외부 쿼리는 하위 쿼리에서 반환된 제품군의 평균 구매 가격을 계산합니다.
🎜NULL 값이 있는 MySQL AVG 함수🎜
🎜AVG() 함수는 계산에서NULL을 무시합니다 code> 값에 대해 다음 예를 참조하세요. 🎜🎜<em>먼저</em>, <code>val과 마찬가지로 <code>id
두 개의 열이 있는 t
라는 새 테이블을 만듭니다. , val
열에는 NULL
값이 포함될 수 있습니다. 🎜rrreee🎜두 번째로 NULL
값을 포함하여 t
테이블에 일부 행을 삽입합니다. 🎜rrreee🎜세 번째, AVG()
함수를 사용하여 val
열에 있는 값의 평균값을 계산합니다. 🎜rrreee🎜 위 쿼리 문을 실행하면 다음과 같은 결과가 나옵니다. - 🎜rrreee🎜이 문은 AVG 함수 계산에 NULL
값이 포함되지 않으므로 예상대로 2
를 반환합니다. 🎜🎜제어 흐름 함수가 포함된 MySQL AVG🎜
🎜열의 평균을 계산하고 단일 문에서 동일한 열의 평균을 조건부로 계산하려면 다음을 수행할 수 있습니다. 제어 흐름 함수(예:IF
, CASE
, IFNULL
, NULLIF
등)와 함께 AVG 함수를 사용합니다. 🎜🎜예를 들어 Classic Cars
제품군의 평균 가격과 모든 제품의 평균 가격의 비율을 계산하려면 다음 명령문을 사용하세요. 🎜rrreee🎜위 쿼리 문을 실행하여 다음을 얻습니다. 다음 결과-🎜rrreee🎜제품 라인이 Classic Cars
인 경우 IF(productline='Classic Cars',buyprice,NULL)
표현식은 가격을 반환합니다. 그렇지 않으면 NULL
을 반환합니다. 🎜AVG 함수는 계산 시 NULL
值,所以AVG(IF(productline ='Classic Cars',buyprice,NULL))
表达式只计算产品线是Classic Cars
제품의 평균 가격을 무시하기 때문입니다.
【관련 추천: mysql 비디오 튜토리얼】
위 내용은 MySQL에서 평균값을 찾는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











MySQL은 설치가 간단하고 강력하며 데이터를 쉽게 관리하기 쉽기 때문에 초보자에게 적합합니다. 1. 다양한 운영 체제에 적합한 간단한 설치 및 구성. 2. 데이터베이스 및 테이블 작성, 삽입, 쿼리, 업데이트 및 삭제와 같은 기본 작업을 지원합니다. 3. 조인 작업 및 하위 쿼리와 같은 고급 기능을 제공합니다. 4. 인덱싱, 쿼리 최적화 및 테이블 파티셔닝을 통해 성능을 향상시킬 수 있습니다. 5. 데이터 보안 및 일관성을 보장하기위한 지원 백업, 복구 및 보안 조치.

MySQL은 오픈 소스 관계형 데이터베이스 관리 시스템입니다. 1) 데이터베이스 및 테이블 작성 : CreateAbase 및 CreateTable 명령을 사용하십시오. 2) 기본 작업 : 삽입, 업데이트, 삭제 및 선택. 3) 고급 운영 : 가입, 하위 쿼리 및 거래 처리. 4) 디버깅 기술 : 확인, 데이터 유형 및 권한을 확인하십시오. 5) 최적화 제안 : 인덱스 사용, 선택을 피하고 거래를 사용하십시오.

다음 단계를 통해 phpmyadmin을 열 수 있습니다. 1. 웹 사이트 제어판에 로그인; 2. phpmyadmin 아이콘을 찾고 클릭하십시오. 3. MySQL 자격 증명을 입력하십시오. 4. "로그인"을 클릭하십시오.

Navicat Premium을 사용하여 데이터베이스 생성 : 데이터베이스 서버에 연결하고 연결 매개 변수를 입력하십시오. 서버를 마우스 오른쪽 버튼으로 클릭하고 데이터베이스 생성을 선택하십시오. 새 데이터베이스의 이름과 지정된 문자 세트 및 Collation의 이름을 입력하십시오. 새 데이터베이스에 연결하고 객체 브라우저에서 테이블을 만듭니다. 테이블을 마우스 오른쪽 버튼으로 클릭하고 데이터 삽입을 선택하여 데이터를 삽입하십시오.

MySQL 및 SQL은 개발자에게 필수적인 기술입니다. 1.MySQL은 오픈 소스 관계형 데이터베이스 관리 시스템이며 SQL은 데이터베이스를 관리하고 작동하는 데 사용되는 표준 언어입니다. 2.MYSQL은 효율적인 데이터 저장 및 검색 기능을 통해 여러 스토리지 엔진을 지원하며 SQL은 간단한 문을 통해 복잡한 데이터 작업을 완료합니다. 3. 사용의 예에는 기본 쿼리 및 조건 별 필터링 및 정렬과 같은 고급 쿼리가 포함됩니다. 4. 일반적인 오류에는 구문 오류 및 성능 문제가 포함되며 SQL 문을 확인하고 설명 명령을 사용하여 최적화 할 수 있습니다. 5. 성능 최적화 기술에는 인덱스 사용, 전체 테이블 스캔 피하기, 조인 작업 최적화 및 코드 가독성 향상이 포함됩니다.

응용 프로그램을 열고 새로운 연결 (Ctrl n)을 선택하여 Navicat에서 새로운 MySQL 연결을 만들 수 있습니다. "MySQL"을 연결 유형으로 선택하십시오. 호스트 이름/IP 주소, 포트, 사용자 이름 및 비밀번호를 입력하십시오. (선택 사항) 고급 옵션을 구성합니다. 연결을 저장하고 연결 이름을 입력하십시오.

Navicat에서 SQL을 수행하는 단계 : 데이터베이스에 연결하십시오. SQL 편집기 창을 만듭니다. SQL 쿼리 또는 스크립트를 작성하십시오. 실행 버튼을 클릭하여 쿼리 또는 스크립트를 실행하십시오. 결과를 봅니다 (쿼리가 실행 된 경우).

데이터베이스에 연결할 때의 일반적인 오류 및 솔루션 : 사용자 이름 또는 비밀번호 (오류 1045) 방화벽 차단 연결 (오류 2003) 연결 시간 초과 (오류 10060) 소켓 연결 (오류 1042) SSL 연결 오류 (오류 10055) 너무 많은 연결 시도가 차단되는 경우 (오류 1049) 데이터베이스에 연결되지 않음 (오류 1049) 데이터베이스에 연결되지 않습니다 (오류 1049).
