데이터 베이스 MySQL 튜토리얼 MySQL高级特性之集合函数_MySQL

MySQL高级特性之集合函数_MySQL

Jun 01, 2016 pm 01:47 PM
어떻게 표면

bitsCN.com

到现在为止,你只学习了如何根据特定的条件从表中取出一条或多条记录。但是,假如你想对一个表中的记录进行数据统计。例如,如果你想统计存储在表中的一次民意测验的投票结果。或者你想知道一个访问者在你的站点上平均花费了多少时间。要对表中的任何类型的数据进行统计,都需要使用集合函数。你可以统计记录数目,平均值,最小值,最大值,或者求和。当你使用一个集合函数时,它只返回一个数,该数值代表这几个统计值之一。

这些函数的最大特点就是经常和GROUP BY语句配合使用,需要注意的是集合函数不能和非分组的列混合使用。

行列计数

计算查询语句返回的记录行数

直接计算函数COUNT(*)的值,例如,计算pet表中猫的只数:

mysql>SELECT count(*) FROM pet WHERE species=’cat’;

+----------+

| count(*) |

+----------+

|        2 |

+----------+

统计字段值的数目

例如,计算pet表中species列的数目:

mysql> SELECT count(species) FROM pet;

+----------------+

| count(species) |

+----------------+

|              9 |

+----------------+

如果相同的种类出现了不止一次,该种类将会被计算多次。如果你想知道种类为某个特定值的宠物有多少个,你可以使用WHERE子句,如下例所示:

mysql> SELECT COUNT(species) FROM pet WHERE species=cat ;

注意这条语句的结果:

+----------------+

| COUNT(species) |

+----------------+

|              2 |

+----------------+

这个例子返回种类为cat的作者的数目。如果这个名字在表pet中出现了两次,则次函数的返回值是2。 而且它和上面提到过的语句的结果是一致的:

SELECT count(*) FROM pet WHERE species=’cat’

实际上,这两条语句是等价的。

假如你想知道有多少不同种类的的宠物数目。你可以通过使用关键字DISTINCT来得到该数目。如下例所示:

mysql> SELECT COUNT(DISTINCT species) FROM pet;

+-------------------------+

| COUNT(DISTINCT species) |

+-------------------------+

|                       5 |

+-------------------------+

如果种类cat出现了不止一次,它将只被计算一次。关键字DISTINCT 决定了只有互不相同的值才被计算。

通常,当你使用COUNT()时,字段中的空值将被忽略。

另外,COUNT()函数通常和GROUP BY子句配合使用,例如可以这样返回每种宠物的数目:

mysql> SELECT species,count(*) FROM pet GROUP BY species;

+---------+----------+

| species | count(*) |

+---------+----------+

| bird    |        2 |

| cat     |        2 |

| dog     |        3 |

| hamster |        1 |

| snake   |        1 |

+---------+----------+

计算字段的平均值

需要计算这些值的平均值。使用函数AVG(),你可以返回一个字段中所有值的平均值。

假如你对你的站点进行一次较为复杂的民意调查。访问者可以在1到10之间投票,表示他们喜欢你站点的程度。你把投票结果保存在名为vote的INT型字段中。要计算你的用户投票的平均值,你需要使用函数AVG():

SELECT AVG(vote) FROM opinion

这个SELECT语句的返回值代表用户对你站点的平均喜欢程度。函数AVG()只能对数值型字段使用。这个函数在计算平均值时也忽略空值。

再给出一个实际例子,例如我们要计算pet表中每种动物年龄的平均值,那么使用AVG()函数和GROUP BY子句:

mysql> SELECT species,AVG(CURDATE()-birth) FROM pet GROUP BY species;

返回的结果为:

+---------+----------------------+

| species | AVG(CURDATE()-birth) |

+---------+----------------------+

| bird    |                34160 |

| cat     |              74959.5 |

| dog     |      112829.66666667 |

| hamster |                19890 |

| snake   |                49791 |

+---------+----------------------+

计算字段值的和

假设你的站点被用来出售某种商品,已经运行了两个月,是该计算赚了多少钱的时候了。假设有一个名为orders的表用来记录所有访问者的定购信息。要计算所有定购量的总和,你可以使用函数SUM():

SELECT SUM(purchase_amount) FROM orders

函数SUM()的返回值代表字段purchase_amount中所有值的总和。字段purchase_amount的数据类型也许是DECIMAL类型,但你也可以对其它数值型字段使用函数SUM()。

用一个不太恰当的例子说明,我们计算pet表中同种宠物的年龄的总和:

mysql> SELECT species,SUM(CURDATE()-birth) FROM pet GROUP BY species;

你可以查看结果,与前一个例子对照:

+---------+----------------------+

| species | SUM(CURDATE()-birth) |

+---------+----------------------+

| bird    |                68320 |

| cat     |               149919 |

| dog     |               338489 |

| hamster |                19890 |

| snake   |                49791 |

+---------+----------------------+

计算字段值的极值

求字段的极值,涉及两个函数MAX()和MIN()。

例如,还是pet表,你想知道最早的动物出生日期,由于日期最早就是最小,所以可以使用MIN()函数:

mysql> SELECT MIN(birth) FROM pet;

+------------+

| MIN(birth) |

+------------+

| 1989-05-13 |

+------------+

但是,你只知道了日期,还是无法知道是哪只宠物,你可能想到这样做:

SELECT name,MIN(birth) FROM pet;

但是,这是一个错误的SQL语句,因为集合函数不能和非分组的列混合使用,这里name列是没有分组的。所以,你无法同时得到name列的值和birth的极值。

MIN()函数同样可以与GROUP BY子句配合使用,例如,找出每种宠物中最早的出生日期:

mysql> SELECT species,MIN(birth) FROM pet GROUP BY species;

下面是令人满意的结果:

+---------+------------+

| species | MIN(birth) |

+---------+------------+

| bird    | 1997-12-09 |

| cat     | 1993-02-04 |

| dog     | 1989-05-13 |

| hamster | 1999-03-30 |

| snake   | 1996-04-29 |

+---------+------------+

另一方面,如果你想知道最近的出生日期,就是日期的最大值,你可以使用MAX()函数,如下例所示:

mysql> SELECT species,MAX(birth) FROM pet GROUP BY species;

+---------+------------+

| species | MAX(birth) |

+---------+------------+

| bird    | 1998-09-11 |

| cat     | 1994-03-17 |

| dog     | 1990-08-31 |

| hamster | 1999-03-30 |

| snake   | 1996-04-29 |

+---------+------------+

总结

在本节中,介绍了一些典型的集合函数的用法,包括计数、均值、极值和总和,这些都是SQL语言中非常常用的函数。

这些函数之所以称之为集合函数,是因为它们应用在多条记录中,所以集合函数最常见的用法就是与GROUP BY子句配合使用,最重要的是集合函数不能同未分组的列混合使用。

bitsCN.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

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

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 채팅 명령 및 사용 방법
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

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

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

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

하얼빈 의과대학 임상약학 취업에 미래가 있나요? (하얼빈 의과대학 임상약학 취업 전망은 어떻습니까?) 하얼빈 의과대학 임상약학 취업에 미래가 있나요? (하얼빈 의과대학 임상약학 취업 전망은 어떻습니까?) Jan 02, 2024 pm 08:54 PM

하얼빈 의과대학 임상약학 취업 전망은 어떻습니까? 전국 취업 상황이 낙관적이지는 않지만 약학 졸업생의 취업 전망은 여전히 ​​좋습니다. 전반적으로 제약산업 졸업생의 공급은 수요보다 적다. 제약회사와 제약공장은 이러한 졸업생을 흡수하는 주요 통로이기도 하다. 보도에 따르면 최근 몇 년간 조제약품, 천연의약화학 등 전공 대학원생의 수급비율은 1:10에 달하기도 했다. 임상약학전공 취업방향: 임상의학을 전공하는 학생은 졸업 후 의료보건학과, 의학연구 및 기타 학과에서 진료, 예방, 의학연구 등에 종사할 수 있습니다. 채용 직위: 의료 담당자, 제약 영업 담당자, 영업 담당자, 영업 관리자, 지역 영업 관리자, 투자 관리자, 제품 관리자, 제품 전문가, 간호사

MySQL에서 테이블 데이터를 보기 위해 명령문을 구현하는 방법은 무엇입니까? MySQL에서 테이블 데이터를 보기 위해 명령문을 구현하는 방법은 무엇입니까? Nov 08, 2023 pm 01:40 PM

제목: MySQL에서 테이블 데이터를 보기 위한 명령문 및 특정 코드 예 MySQL은 모든 규모의 애플리케이션에서 널리 사용되는 오픈 소스 관계형 데이터베이스 관리 시스템입니다. MySQL에서 테이블 데이터를 보는 것은 매우 기본적인 작업입니다. 다음에서는 구체적인 문과 코드 예제를 통해 이 작업을 구현하는 방법을 소개합니다. 먼저 MySQL 명령줄 도구를 통해 테이블 ​​데이터를 보기 위한 명령문과 구체적인 코드 예제를 소개합니다. "employees"라는 테이블이 있다고 가정하면 다음은 패스입니다.

win10 이미지를 빠르게 다운로드하는 방법 win10 이미지를 빠르게 다운로드하는 방법 Jan 07, 2024 am 11:33 AM

최근 몇몇 친구들이 win10 이미지 파일을 다운로드하는 방법을 보고했습니다. 시중에 이미지 파일이 너무 많아서 다운로드할 일반 파일을 찾으려면 어떻게 해야 하나요? 오늘은 편집자가 이미지 다운로드 링크와 자세한 해결 단계를 함께 살펴보겠습니다. win10 이미지 빠른 다운로드 및 설치 튜토리얼 다운로드 링크 >>> 시스템 홈 Ghostwin101909 이미지 64비트 버전 v2019.11<<<>>>Win10 이미지 64비트 v2019.07<<<>>>Win10 이미지 32비트 v2019. 07<< <1. 인터넷으로 검색해 보세요.

임시 폴더를 정리하는 방법 임시 폴더를 정리하는 방법 Feb 22, 2024 am 09:15 AM

임시 폴더를 정리하는 방법 우리가 컴퓨터를 사용하면서 임시 파일(임시 파일)은 점차 쌓이게 됩니다. 이러한 임시 파일은 웹 검색 시 캐시 파일, 소프트웨어 설치 시 임시 파일 등과 같이 컴퓨터를 사용할 때 생성됩니다. 임시 폴더를 오랫동안 정리하지 않으면 많은 양의 디스크 공간을 차지하여 컴퓨터 속도에 영향을 줄 수 있습니다. 따라서 임시 폴더를 정기적으로 청소하는 것은 컴퓨터 성능을 유지하는 데 필요한 단계입니다. 아래에서는 임시 폴더를 정리하는 몇 가지 간단한 방법을 소개합니다. 방법 1: 수동으로 청소

Win10 시스템을 재설정하는 방법 Win10 시스템을 재설정하는 방법 Jun 29, 2023 pm 03:14 PM

Win10 시스템을 재설정하는 방법은 무엇입니까? 요즘에는 많은 친구들이 Win10 시스템을 사용하는 것을 좋아합니다. 그러나 컴퓨터를 사용할 때 필연적으로 해결할 수 없는 문제가 발생합니다. 그렇다면 어떻게 해야 합니까? 편집기를 따라 Win10 시스템 재설정에 대한 튜토리얼을 시청해 보세요. 필요한 사용자는 놓치지 마세요. Win10 시스템 재설정 튜토리얼 1. Windows를 클릭하고 설정을 선택합니다. 2. 업데이트 및 보안을 클릭합니다. 3. 복원을 선택합니다. 4. 이 컴퓨터를 재설정하려면 오른쪽의 시작을 클릭하세요. 위의 내용은 [Win10 시스템 재설정 방법 - Win10 시스템 재설정 튜토리얼]의 전체 내용입니다. 이 사이트에서 더 흥미로운 튜토리얼을 볼 수 있습니다!

MySQL에서 테이블 이름 바꾸기 명령문을 구현하는 방법은 무엇입니까? MySQL에서 테이블 이름 바꾸기 명령문을 구현하는 방법은 무엇입니까? Nov 08, 2023 pm 12:11 PM

MySQL은 테이블 이름 바꾸기 작업을 지원하는 일반적으로 사용되는 관계형 데이터베이스 관리 시스템입니다. 일반적으로 테이블 이름을 바꾸면 특정 위험이 따르므로 이 작업을 수행할 때는 매우 주의해야 합니다. 이 기사에서는 MySQL에서 테이블 이름 변경 문을 구현하는 방법을 살펴보고 자세한 코드 예제를 제공합니다. MySQL에서는 ALTERTABLE 문을 사용하여 테이블 이름을 바꿀 수 있습니다. 다음은 ALTERTABLE 이름 바꾸기 문의 기본 구문입니다. ALTERTABLEo

시스템 재설치 시 환경 감지 문제 해결 시스템 재설치 시 환경 감지 문제 해결 Jan 08, 2024 pm 03:33 PM

시스템 재설치 시 환경 테스트가 실패하고 다시 작성해야 하는 문제를 해결하는 방법: 휴대폰이 중독되었습니다. 2. 바이러스 백신용 모바일 관리자와 같은 바이러스 백신 소프트웨어를 설치할 수 있습니다. 파일이 휴대폰 내부에 저장되어 휴대폰의 실행 메모리를 점유하게 됩니다. 3. 저장된 소프트웨어와 파일이 휴대폰 메모리를 너무 많이 차지하므로 하드웨어 구성이 설치 요구 사항을 충족하는 한 불필요한 파일과 소프트웨어를 자주 삭제하는 것은 문제가 되지 않습니다. 새 것을 시스템 디스크에서 직접 다시 설치하십시오! USB 플래시 드라이브나 하드 디스크를 사용하여 설치할 수 있으며 이는 매우 빠릅니다. 하지만 핵심은 호환성이 좋고(IDE, ACHI, RAID 모드에서 설치 지원) 자동으로 영구적으로 활성화될 수 있는 검증된 시스템 디스크를 사용하는 것입니다. 그래서

win11 컴퓨터 구성을 확인하는 방법 win11 컴퓨터 구성을 확인하는 방법 Jun 29, 2023 pm 12:15 PM

win11 컴퓨터 구성을 확인하는 방법은 무엇입니까? win11 시스템은 매우 실용적인 컴퓨터 운영 체제 버전입니다. 이 버전은 사용자에게 더 나은 컴퓨터 작동 경험을 제공합니다. 따라서 컴퓨터를 사용하는 많은 친구들은 컴퓨터의 구체적인 구성과 이 작업을 수행하는 방법에 대해 궁금해합니다. win11 시스템에서? 많은 친구들이 자세한 작동 방법을 모릅니다. 편집자는 아래의 win11 컴퓨터 구성을 보는 방법에 대한 튜토리얼을 편집했습니다. 관심이 있으시면 편집자를 따라가십시오! Win11 컴퓨터 구성 보기 튜토리얼 1. 아래 작업 표시줄에서 Windows 아이콘을 클릭하거나 키보드의 "Windows 키"를 눌러 시작 메뉴를 엽니다. 2. 시작 메뉴에서 "설정" 또는 "sett"를 찾으세요.

See all articles