跳转到路径导航栏
跳转到正文内容

MySQL高级特性之集合函数

http://www.sina.com.cn  2009年01月06日 13:55  天极网

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

  这些函数的最大特点就是经常和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()时,字段中的空值将被忽略。

上一页 1 2 3 下一页

>话题讨论查看全部评论

已有 _COUNT_位网友发表评论  
登录名: 密码: 匿名发表

Powered By Google
flash

新浪简介About Sina广告服务联系我们招聘信息网站律师SINA English会员注册产品答疑┊Copyright © 1996-2009 SINA Corporation, All Rights Reserved

新浪公司 版权所有