WEB开发网
开发学院数据库MySQL MySQL高级特性之集合函数 阅读

MySQL高级特性之集合函数

 2009-01-06 11:15:31 来源:WEB开发网   
核心提示: 计算字段值的极值求字段的极值,涉及两个函数MAX()和MIN(),MySQL高级特性之集合函数(4),例如,还是pet表,是因为它们应用在多条记录中,所以集合函数最常见的用法就是与GROUP BY子句配合使用,你想知道最早的动物出生日期,由于日期最早就是最小

计算字段值的极值

求字段的极值,涉及两个函数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子句配合使用,最重要的是集合函数不能同未分组的列混合使用。

上一页  1 2 3 4 

Tags:MySQL 高级 特性

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接