MySQL高级特性之集合函数

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

这些函数的最大特点就是经常和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 |
+-------------------------+

时间: 2025-01-01 15:19:46

MySQL高级特性之集合函数的相关文章

MYSQL高级特性 -- 事务处理

下面以两个银行账户之间的转账为例子进行演示. 要使用MySQL中的事务处理,首先需要创建使用事务表类型(如BDB = Berkeley DB或InnoDB)的表. CREATE TABLE account ( account_id BIGINT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, balance DOUBLE ) TYPE = InnoDB; 要在事务表上使用事务处理,必须要首先关闭自动提交: SET AUTOCOMMIT = 0; 事务处

泛型编程深入探索(一) 模版高级特性小结

一些基本的模版特性: 非类参数模版 模版所声明的参数可以不是类参数,可以声明的非类参数包括整数(double,float不可以),enum,对象引用或指针. 通过模版嵌套实现类或非类参数载类方法参数上的重载(调用时实现,不在定义时实现) 友元函数模版: 直接举例: template <typename T> friend ostream& operator<< <T>(ostream& os, const T& t){}; 内联模版函数: 模版定

MySQL · 引擎特性 · InnoDB 事务子系统介绍

前言 在前面几期关于 InnoDB Redo 和 Undo 实现的铺垫后,本节我们从上层的角度来阐述 InnoDB 的事务子系统是如何实现的,涉及的内容包括:InnoDB的事务相关模块.如何实现MVCC及ACID.如何进行事务的并发控制.事务系统如何进行管理等相关知识.本文的目的是让读者对事务系统有一个较全面的理解. 由于不同版本对事务系统都有改变,本文的所有分析基于当前GA的最新版本MySQL5.7.9,但也会在阐述的过程中,顺带描述之前版本的一些内容.本文也会介绍5.7版本对事务系统的一些优

全面解析Hibernate关联操作、查询操作、高级特性、并发处理机制_java

本文所需的数据库初始文件,Hibernate常用操作的完整示例代码(包含所有Hibernate操作所需jar文件)提供下载学习:http://download.csdn.net/detail/daijin888888/9551724 1.Hibernate关联映射     1)什么是关联映射?         如果表之间具有关联关系,Hibernate允许我们在hbm.xml中描述他们的关联关系,然后在我们操作其中一张表时,自动的根据这种关系操作到另外的关系表,那么这种关联关系的设置,我们称之为

MySQL笔试面试题集合

MySQL笔试面试题集合 MySQL面试实战系列 MySQL DBA 面试全揭秘 Linux技术 2015-09-23 13:31 本文起源于有同学留言回复说想了解下MySQL DBA面试时可能涉及到的知识要点,那我们今天就来大概谈谈吧. MySQL DBA职位最近几年特别热门,不少朋友让我帮忙推荐什么的,也有很多公司找不到合适的DBA.原因很简单,优秀的人才要么被大公司圈起来了,要么被创业公司高薪挖走,如果你既不是大公司,又不能出得起高价钱的土豪公司,想要找到优秀人才的几率堪比买彩票中奖的概率

PHP高级特性讨论之邮件相关

高级 邮件发送和收取是目前网上交流最为重要的途径之一,我们当然很希望自己的PHP程序也能够实现某些商业网站注册程序中采用的方法,即通过邮件方式进行密码(或激活码)发送和资料确认.另一方面,这种方式也是一种反馈用户信息的有效途径.当然,要实现这些功能是离不开邮件服务器的,目前比较流行的Mail服务器(更准确的说是邮件传输代理MTA)有:sendmail.qmail.postfix.至于如何配置其中的pop.smtp.imap等服务已经超出这篇文章的范围,读者可以参考其他这方面文章.那么好了,我们究

MySQL · 引擎特性 · InnoDB 崩溃恢复过程

在前面两篇文章中,我们详细介绍了 InnoDB redo log 和 undo log 的相关知识,本文将介绍 InnoDB 在崩溃恢复时的主要流程. 本文代码分析基于 MySQL 5.7.7-RC 版本,函数入口为 innobase_start_or_create_for_mysql,这是一个非常冗长的函数,本文只涉及和崩溃恢复相关的代码. 在阅读本文前,强烈建议翻阅下面两篇文章: 1. MySQL · 引擎特性 · InnoDB undo log 漫游 2. MySQL · 引擎特性 · I

MySQL · 引擎特性 · InnoDB 文件系统之文件物理结构

综述 从上层的角度来看,InnoDB层的文件,除了redo日志外,基本上具有相当统一的结构,都是固定block大小,普遍使用的btree结构来管理数据.只是针对不同的block的应用场景会分配不同的页类型.通常默认情况下,每个block的大小为 UNIV_PAGE_SIZE,在不做任何配置时值为16kb,你还可以选择在安装实例时指定一个块的block大小.对于压缩表,可以在建表时指定block size,但在内存中表现的解压页依旧为统一的页大小. 从物理文件的分类来看,有日志文件.主系统表空间文

mysql问题:sum相加函数用法

问题描述 mysql问题:sum相加函数用法 原始数据: a b 11 11 25 1 29 5 22 7 45 6 想要达成的效果: a b c d 11 11 11 11 25 1 36 12 29 5 65 17 22 7 87 24 45 6 132 30 Mysql代码怎么写,我知道用sum函数,但是计算的是总和,这里的要求是,第一个和第二个相加,第三个和第一个和第二个相加,我不知道怎么说,看逻辑就知道了,求大神帮忙 解决方案 http://blog.sina.com.cn/s/blo