SQL Server 2005--group by子句

指定用来放置输出行的组。如果 SELECT 子句 <select list> 中包含聚合函数,则 GROUP BY 将计算每组的汇总值。指定 GROUP BY 时,选择列表中任意非聚合表达式内的所有列都应包含在 GROUP BY 列表中,或者 GROUP BY 表达式必须与选择列表表达式完全匹配。

注意:

如果未指定 ORDER BY 子句,则使用 GROUP BY 子句返回的组没有任何特定的顺序。若要指定特定的数据排序,建议您始终使用 ORDER BY 子句。

 

 

Transact-SQL 语法约定

语法

[ GROUP BY [ ALL ] group_by_expression [ ,...n ] 
    [ WITH { CUBE | ROLLUP } ] 
] 

 

 

使用 GROUP BY 子句时,一定要记住下面的规则:
1.  不能 GROUP BY text、image 或 bit 数据类型的列
2.  SELECT 列表中指定的每一列也必须出现在 GROUP BY 子句中,除非这列是用于聚合函数。
3.  不能 GROUP BY 列的别名。 这是说 GROUP BY 字段列表中的所有字段必须是实际存在于 FROM 子句中指定的表中的列。
4.  进行分组前可以使用 WHERE 子句消除不满足条件的行。
5.  使用 GROUP BY 子句返回的组没有特定的顺序。可以使用 ORDER BY 子句指定想要的排序次序。
使用   HAVING   子句选择行 (having子句不能单独使用,出现having肯定有group by)
HAVING   子句对   GROUP   BY   子句设置条件的方式与   WHERE   子句和   SELECT   语句交互的方式类似。WHERE   子句搜索条件在进行分组操作之前应用;而   HAVING   搜索条件在进行分组操作之后应用。HAVING   语法与   WHERE   语法类似,但   HAVING   可以包含聚合函数。HAVING   子句可以引用选择列表中出现的任意项。
理解应用   WHERE、GROUP   BY   和   HAVING   子句的正确序列对编写高效的查询代码会有所帮助:  

WHERE   子句用来筛选   FROM   子句中指定的操作所产生的行。

GROUP   BY   子句用来分组   WHERE   子句的输出。

HAVING   子句用来从分组的结果中筛选行。  
对于可以在分组操作之前或之后应用的搜索条件,在   WHERE   子句中指定它们更有效。这样可以减少必须分组的行数。应当在   HAVING   子句中指定的搜索条件只是那些必须在执行分组操作之后应用的搜索条件。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值