MySQL高级特性之集合函数
+----------------------+
计算字段值的和 假设你的站点被用来出售某种商品,已经运行了两个月,是该计算赚了多少钱的时候了。假设有一个名为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; 下面是令人满意的结果: +---------+- |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |