您现在的位置:主页 > 技术中心 > 数据库技术

SQL进行排序、分组、统计的10个新技巧(2)

来源:互联网 责任编辑:admin 发表时间:2013-07-01 06:56 点击:

SELECT ZIP, Count(ZIP) AS KYCustomersByZIP FROM
CustomersWHEREState = 'KY' GROUP BY ALL ZIP

结果分组包括潜在数据中的所有ZIP值,然而,对于那些不是肯塔基州ZIP分组的聚合列(KYCustomersByZIP)将会显示0。远程查询不支持GROUP BY ALL。

5.分组后筛选数据

WHERE语句在GROUP BY语句之前进行计算。当你需要在分组之后筛选数据时,可以使用HAVING语句。通常情况下,WHERE语句和HAVING语句的返回结果是一样的,但是值得注意的是这两个语句不可互换。当你迷惑时,可以遵循下面的说明:使用WHERE语句过滤记录,使用HAVING语句过滤分组。

一般情况,你会使用HAVING语句和某个聚合函数计算一个分组。例如,下面的语句返回一个唯一的ZIP编码列,但是可能不会包含潜在数据源中所有的ZIP。

SELECT ZIP, Count(ZIP) AS CustomersByZIP FROM
Customers GROUP BY ZIP HAVING Count(ZIP) = 1

只有那些包含一位顾客的分组显示在结果中。

6.进一步了解WHERE和HAVING语句

如果你对何时应该使用WHERE,何时使用HAVING仍旧很迷惑,请遵照下面的说明:

WHERE语句在GROUP BY语句之前;SQL会在分组之前计算WHERE语句。

HAVING语句在GROUP BY语句之后;SQL会在分组之后计算HAVING语句。

7.使用聚合函数统计分组数据

分组数据可以帮助我们分析数据,但是有时我们可能需要更多的信息而不仅仅是分组。你可以使用聚合函数来统计分组数据。例如,下面的语句显示每批订购单的总价钱。

SELECT OrderID, Sum(Cost * Quantity) AS OrderTotal
FROM Orders GROUP BY OrderID

对于其它的分组来说,SELECT和GROUP BY列必须匹配。而SELECT语句包含聚合函数时这一规则是一个例外。

8.统计聚合数据

你可以继续统计数据为每个分组显示一个分类统计。SQL的ROLLUP操作符可以为每个分组显示一个额外的分类统计。这个分类统计是使用聚合函数计算每个分组中的所有记录得到的结果。下面的语句为每个分组计算OrderTotal:

SELECT Customer, OrderNumber, Sum(Cost * Quantity)

AS OrderTotal FROM Orders GROUP BY Customer,

OrderNumber WITH ROLLUP
 

发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片

推荐热点

  • SQL注入攻击及其防范检测技术研究
  • Sql-Server应用程序的高级Sql注入
  • 学生信息管理系统数据库原理课程设计报告
  • 经验总结:登录和优化IBM DB2的执行速度
  • MySQL服务器的启动与停止
  • 浅谈数据库的接口技术
  • 学习数据库知识之 SQL 操作标记
  • 如何在SQL Server和MySql中创建临时表
  • 有关Sybase系统的数据同步与复制问题
?? - ?? - ÝřŝžľŘÝź - TAGąęÇŠ - RSSśŠÔÄ - ??
Copyright © 2004-2024 上海卓卓网络科技有限公司