select ... GROUP BY Field1,Field2,Field3,...,FieldN
N的数量没有明确地限制, 你不会有突破极限的分组字段吧?!只要是给出准确的语句, 就能得到准确的结果, 不应该怀疑“分组多了对系统的统计的准确性”的“影响”。
N的数量没有明确地限制, 你不会有突破极限的分组字段吧?!只要是给出准确的语句, 就能得到准确的结果, 不应该怀疑“分组多了对系统的统计的准确性”的“影响”。
解决方案 »
- SQL日期转换08 21 2011 6:53PM,如何变成2011-08-21 18:53:00
- sql语句的换行问题
- case when 怎么用嵌套查询
- SQL数据库中包含是什么
- 帮帮忙,看看这个递归怎么写
- 日期时间的sql语句,对你们来说简单!
- sql server 2005导入到2000
- 各位老师!!我从网上下载了一个新闻发布系统,但其数据库加密,请问有什么办法解密?非常感谢!!!
- select distinct userId, username, otherdata from table
- 遇到个查询统计的sql,已经不会写了...help
- sql数据库中,可以使用汉字作为字段吗???
- 高分求解:如何每天将本地的sybase的数据导入到internet上的sql server数据库中?
语法
[ GROUP BY [ ALL ] group_by_expression [ ,...n ]
[ WITH { CUBE | ROLLUP } ]
]参数
ALL包含所有组和结果集,甚至包含那些任何行都不满足 WHERE 子句指定的搜索条件的组和结果集。如果指定了 ALL,将对组中不满足搜索条件的汇总列返回空值。不能用 CUBE 或 ROLLUP 运算符指定 ALL。 如果访问远程表的查询中有 WHERE 子句,则不支持 GROUP BY ALL 操作。group_by_expression是对其执行分组的表达式。group_by_expression 也称为分组列。group_by expression 可以是列或引用列的非聚合表达式。在选择列表内定义的列的别名不能用于指定分组列。说明 text、ntext 和 image 类型的列不能用于 group_by_expression。
对于不包含 CUBE 或 ROLLUP 的 GROUP BY 子句,group_by_expression 的项数受查询所涉及的 GROUP BY 列的大小、聚合列和聚合值的限制。该限制从 8,060 字节的限制开始,对保存中间查询结果所需的中间级工作表有 8,060 字节的限制。如果指定了 CUBE 或 ROLLUP,则最多只能有 10 个分组表达式。CUBE指定在结果集内不仅包含由 GROUP BY 提供的正常行,还包含汇总行。在结果集内返回每个可能的组和子组组合的 GROUP BY 汇总行。GROUP BY 汇总行在结果中显示为 NULL,但可用来表示所有值。使用 GROUPING 函数确定结果集内的空值是否是 GROUP BY 汇总值。结果集内的汇总行数取决于 GROUP BY 子句内包含的列数。GROUP BY 子句中的每个操作数(列)绑定在分组 NULL 下,并且分组适用于所有其它操作数(列)。由于 CUBE 返回每个可能的组和子组组合,因此不论指定分组列时所使用的是什么顺序,行数都相同。ROLLUP指定在结果集内不仅包含由 GROUP BY 提供的正常行,还包含汇总行。按层次结构顺序,从组内的最低级别到最高级别汇总组。组的层次结构取决于指定分组列时所使用的顺序。更改分组列的顺序会影响在结果集内生成的行数。重要 使用 CUBE 或 ROLLUP 时,不支持区分聚合,如 AVG(DISTINCT column_name)、COUNT(DISTINCT column_name) 和 SUM(DISTINCT column_name)。如果使用这类聚合,SQL Server 将返回错误信息并取消查询。