久久首页
免费软件
网络时尚
网络学堂
专题讨论
网络资源
网络游戏
网络文档
网络产品
网站导航: 首页 > 数据库 > MySQL 3.23 中文参考手册 > 7.4.13 与GROUP BY子句一起使用的函数 文档讨论

MySQL 3.23 中文参考手册

后退 7.4.13 与GROUP BY子句一起使用的函数 前进

2004-02-12 MySQL 译者:晏子 http://www.mysql.com/doc.html
 
如果你在不包含GROUP BY子句的一个语句中使用聚合函数,它等价于聚合所有行。

COUNT(expr)
返回由一个SELECT语句检索出来的行的非NULL值的数目。
mysql> select student.student_name,COUNT(*)
from student,course
where student.student_id=course.student_id
GROUP BY student_name;

COUNT(*)在它返回的检索出来的行数目上有些不同,不管他们是否包含NULL值。如果SELECT从一个表检索,或没有检索出其他列并且没有WHERE子句,COUNT(*)被优化以便快速地返回。例如:

mysql> select COUNT(*) from student;

COUNT(DISTINCT expr,[expr...])
返回一个不同值的数目。
mysql> select COUNT(DISTINCT results) from student;

在MySQL中,你可以通过给出一个表达式列表以得到不同的表达式组合的数目。在 ANSI SQL中,你可能必须在CODE(DISTINCT ..)内进行所有表达式的连接。

AVG(expr)
返回expr的平均值。
mysql> select student_name, AVG(test_score)
from student
GROUP BY student_name;

MIN(expr)
 
MAX(expr)
返回expr的最小或最大值。MIN()和MAX()可以有一个字符串参数;在这种的情况下,他们返回最小或最大的字符串值。
mysql> select student_name, MIN(test_score), MAX(test_score)
from student
GROUP BY student_name;

SUM(expr)
返回expr的和。注意,如果返回的集合没有行,它返回NULL!
STD(expr)
 
STDDEV(expr)
返回expr标准差(deviation)。这是对 ANSI SQL 的扩展。该函数的形式STDDEV()是提供与Oracle的兼容性。
BIT_OR(expr)
返回expr里所有位的位或。计算用 64 位(BIGINT)精度进行。
BIT_AND(expr)
返回expr里所有位的位与。计算用 64 位(BIGINT)精度进行。
MySQL扩展了GROUP BY的用法。你可以不出现在的GROUP BY部分的SELECT表达式中使用列或计算,这表示这个组的任何可能值。你可以使用它是性能更好,避免在不必要的项目上排序和分组。例如,你在下列查询中不需要在customer.name上聚合:

mysql> select order.custid,customer.name,max(payments)
from order,customer
where order.custid = customer.custid
GROUP BY order.custid;

在 ANSI SQL中,你将必须将customer.name加到GROUP BY子句。在MySQL中,名字是冗余的。

如果你从GROUP BY部分省略的列在组中不是唯一的,不要使用这个功能。

在某些情况下,你可以使用MIN()和MAX()获得一个特定的列值,即使它不是唯一的。下例给出从包含sort列中最小值的行的column值:

substr(MIN(concat(sort,space(6-length(sort)),column),7,length(column)))

注意,如果你正在使用MySQL 3.22(或更早)或如果你正在试图遵从ANSI SQL,你不能在GROUP BY或ORDER BY子句中使用表达式。你可以通过使用表达式的一个别名解决此限制:

mysql> SELECT id,FLOOR(value/100) AS val FROM tbl_name
GROUP BY id,val ORDER BY val;

在MySQL3.23中,你可以这样做:

mysql> SELECT id,FLOOR(value/100) FROM tbl_name ORDER BY RAND();

 
后退 目录 前进
7.4.12 其他函数 上一级 7.5 CREATE DATABASE句法
 
发表评论 关闭窗口
 相关内容
- 14 为MySQL增加新函数 2004-02-12
- 7.4.3 位函数 2004-02-12
- 7.4.8 控制流函数 2004-02-12
- 7.4.9 数学函数 2004-02-12
- 7.4.10 字符串函数 2004-02-12
- 7.4.11 日期和时间函数 2004-02-12
- 7.4.12 其他函数 2004-02-12
- 14.1 增加一个新的用户定义函数 2004-02-12
- 14.2 增加一个新的原生函数 2004-02-12
 
 文档分类
操作系统
网络服务
编程语言
数据库
RFC请求注解
基础原理
软件使用
硬件参考
解决方案
 文章搜索
 
网站简介 | 广告服务 | 编程支持 | 设计服务 | 诚邀合作 | 访客留言
Copyright © 1999-2004 99NET. All Rights Reserved
版权所有 久久网络工作室
Email:webmaster@99net.net