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
哈医大临床药学就业前景如何尽管全国就业形势不容乐观,但药科类毕业生仍然有着良好的就业前景。总体来看,药科类毕业生的供给量少于需求量,各医药公司和制药厂是吸纳这类毕业生的主要渠道,制药行业对人才的需求也在稳步增长。据介绍,近几年药物制剂、天然药物化学等专业的研究生供需比甚至达到1∶10。临床药学专业就业方向:临床医学专业学生毕业后可在医疗卫生单位、医学科研等部门从事医疗及预防、医学科研等方面的工作。就业岗位:医药代表、医药销售代表、销售代表、销售经理、区域销售经理、招商经理、产品经理、产品专员、护

标题:MySQL中查看表的数据的语句及具体代码示例MySQL是一种开源的关系型数据库管理系统,它被广泛应用于各种规模的应用程序中。在MySQL中,查看表的数据是一个非常基础的操作,下面将介绍如何通过具体的语句和代码示例实现这一操作。首先,我们将介绍通过MySQL命令行工具查看表的数据的语句及具体代码示例。假设我们有一个名为“employees”的表,以下是通

如何清理temp文件夹随着我们在电脑上的使用,临时文件(temp文件)会逐渐积累。这些临时文件是在我们使用计算机时生成的,如浏览网页时的缓存文件、软件安装时的临时文件等。长时间不清理temp文件夹可能会占据大量磁盘空间,影响电脑运行速度。因此,定期清理temp文件夹是维护电脑性能的必要步骤。下面,我们将介绍清理temp文件夹的一些简单方法。方法一:手动清理t

最近有小伙伴反应win10镜像文件该如何下载,因为市面的镜像文件多如牛毛,想找到正规的文件下载,这可怎么办呢?今天小编带来了下载镜像的链接,详细的解决步骤,具体的一起来看看吧。win10镜像快速下载安装教程下载链接>>>系统之家Ghostwin101909镜像64位版v2019.11<<<>>>Win10镜像64位v2019.07<<<>>>Win10镜像32位v2019.07<<<1、通过网络检索

Win10系统如何重置?现在有很多小伙伴都是喜欢使用Win10系统的电脑,而在使用电脑的过程中难免会遇到一些无法解决的问题,这时候可以尝试去重置系统,那么应该如何操作呢?下面就跟着小编一起来看Win10系统重置的教程吧,有需要的用户可不要错过。 Win10系统重置的教程 1、点击windows,选择设置。 2、点击更新和安全。 3、选择恢复。 4、右侧点击开始,重置此电脑。以上就是【Win10系统如何重置-Win10系统重置的教程】全部内容了,更多精彩教程尽在本站!

在Oracle数据库中,设置表的只读权限是非常重要的操作,可以保护数据的安全性并防止误操作。下面将介绍如何在Oracle数据库中设置表的只读权限,并提供具体的代码示例。首先,我们需要了解在Oracle数据库中,用户通过授权获得对表的权限。表的权限包括SELECT(查询)、INSERT(插入)、UPDATE(更新)和DELETE(删除)等操作。在这里,我们将介

如何查看win11电脑配置?win11系统是一款非常实用的电脑操作系统版本,该版本为用户们提供了丰富的功能,让用户们能够有更好的电脑操作体验,那么很多使用电脑的小伙伴们都很好奇自己电脑的具体配置,在win11系统中该如何进行这一操作呢?很多小伙伴不知道怎么详细操作,小编下面整理了win11电脑配置查看教程,如果你感兴趣的话,跟着小编一起往下看看吧!win11电脑配置查看教程1、点击下方任务栏的windows图标或者按下键盘“windows键”打开开始菜单。2、在开始菜单中找到“设置”或“sett

使用MySQL创建推荐系统表实现推荐系统功能推荐系统是一种用于根据用户的喜好和行为给用户个性化推荐内容的系统。在推荐系统中,数据库是一个关键的组成部分,它保存了用户数据、物品数据和用户-物品交互数据等信息。MySQL作为一种常用的关系型数据库管理系统,可以用来创建推荐系统表,并实现推荐系统的功能。本文将介绍如何使用MySQL创建推荐系统表,并通过代码示例展示


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

Atom editor mac version download
The most popular open source editor

Dreamweaver Mac version
Visual web development tools

Dreamweaver CS6
Visual web development tools

DVWA
Damn Vulnerable Web App (DVWA) is a PHP/MySQL web application that is very vulnerable. Its main goals are to be an aid for security professionals to test their skills and tools in a legal environment, to help web developers better understand the process of securing web applications, and to help teachers/students teach/learn in a classroom environment Web application security. The goal of DVWA is to practice some of the most common web vulnerabilities through a simple and straightforward interface, with varying degrees of difficulty. Please note that this software
