`
flowercat
  • 浏览: 362299 次
社区版块
存档分类
最新评论

group by的限制与规则

sql 
阅读更多
使用 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 子句指定想要的排序次序。
分享到:
评论

相关推荐

    group by的详解

    Oracle数据库对使用`GROUP BY`和`HAVING`有一些特定的限制和注意事项: 1. **分组规则**:在选择列表中出现的任何非聚合列或表达式都必须包含在`GROUP BY`子句中。例如,`p.name`列在选择列表中,因此它也在`GROUP ...

    on与where、group by的用法

    - `GROUP BY`用于对数据进行分组和汇总,`HAVING`子句用于对汇总结果进行过滤,而`ORDER BY`则用于对结果集进行排序。 通过理解这些关键词的基本用法及其区别,我们可以更高效地编写SQL查询语句,从而更好地管理和...

    商务规则概述 by business rule group

    #### 二、商务规则与商务过程的区别 **2.1 设置明确限制与提供支持:** 商务规则为商业行为设定了明确的限制条件,同时也为商业活动提供必要的支持。规则的存在是为了保证商业活动能够在有序的状态下进行。 **2.2 ...

    MySQL优化GROUP BY方案

    2. **GROUP BY子句使用索引的最左前缀**,这意味着GROUP BY的列顺序与索引定义的列顺序相同。 3. **只能使用MIN()和MAX()聚集函数**,并且它们都作用于同一列。 4. **WHERE子句可能包含条件,但不影响松散索引扫描的...

    【GROUP_CONCAT】使用之MySQL官方文档翻译

    可以通过 `ORDER BY` 子句来指定排序规则。默认情况下,`GROUP_CONCAT` 使用升序排序,但可以通过添加 `DESC` 关键词改为降序排序。 4. **分隔符** 默认情况下,`GROUP_CONCAT` 使用逗号作为分隔符。但是,可以...

    解决laravel groupBy 对查询结果进行分组出现的问题

    然而,在使用 `groupBy` 方法时可能会遇到一些问题,特别是当查询语句的 `select` 和 `groupBy` 部分不匹配时,会导致语法错误。这个问题通常会在 MySQL 5.7 及以上版本出现,因为这些版本默认启用了 GROUP BY 严格...

    Mysql利用group by分组排序

    在Mysql中,`GROUP BY`的使用方式与Oracle等其他数据库系统有所不同,尤其是在处理分组排序时,Mysql提供了一种独特的方法。本文将深入探讨Mysql中`GROUP BY`的分组排序功能,并通过一个实际的例子来说明其工作原理...

    Mysql升级到5.7后遇到的group by查询问题解决

    MySQL 5.7 版本升级后,用户可能会遇到与`GROUP BY`查询相关的兼容性问题,这主要是由于新版本中默认启用的`ONLY_FULL_GROUP_BY` SQL模式引起的。此模式要求在`GROUP BY`子句中列出所有的非聚合列,以确保数据的正确...

    MySQL group by对单字分组序和多字段分组的方法讲解

    需要注意的是,`GROUP_CONCAT()`的结果长度有限制,默认情况下是1024个字符,可以通过调整`group_concat_max_len`系统变量来增加这个限制。 总结起来,`GROUP BY`语句结合`GROUP_CONCAT()`函数在MySQL中提供了强大...

    MySQL数据库varchar的限制规则说明

    然而,`VARCHAR`类型并非没有限制,下面我们将详细讨论这些限制规则。 1. **存储限制** - `VARCHAR`字段的存储机制决定了它不会直接存储在主键索引中,而是存储在数据页的单独区域,称为行溢出数据。每个`VARCHAR`...

    sql执行规则

    本文将详细介绍SQL执行规则中的关键步骤,包括`LEFT JOIN`, `WHERE`, `FROM`, `GROUP BY`等操作的具体执行流程。 #### 1. FROM子句 - **定义**: `FROM`子句用于指定要查询的数据源,即需要从中检索数据的表或视图。...

    Oracle语句优化规则汇总

    6. **优化GROUP BY和ORDER BY**:如果可能,先对数据进行预排序,再进行GROUP BY或ORDER BY操作。同时,考虑为GROUP BY的列创建索引。 7. **避免使用DISTINCT**:DISTINCT操作会增加处理时间,尽量通过其他方式消除...

    数据库中如何分类/分组并总计SQL数据

    `GROUP BY`与`SELECT`一起使用时,`SELECT`中列出的非聚合列必须是`GROUP BY`子句的一部分。 3. **限定分组数据**: 在`GROUP BY`之前,可以使用`WHERE`子句来过滤数据。例如,`WHERE State = 'NY'`会限制只处理...

    Oracle_SQL优化规则

    7. **明智使用DISTINCT**:DISTINCT会增加处理负担,尝试通过GROUP BY和聚合函数来替换。 8. **适当使用集合函数**:SUM, COUNT等集合函数可能需要全表扫描,考虑是否可以使用分区函数或分组来减少计算范围。 9. *...

    30个Oracle语句优化规则详解

    合理使用索引和分区,优化GROUP BY和ORDER BY的执行效率。 17. 使用适当的数据类型 选择合适的数据类型可以减少存储空间,提高查询效率。 18. 定期清理无用数据 删除不再需要的临时表、索引和表,保持数据库整洁。...

    探讨SQL compute by的使用分析

    与`GROUP BY`对比,`COMPUTE BY`的优势在于它提供了原始记录和汇总数据的组合视图,而`GROUP BY`则仅提供聚合结果。在`GROUP BY`的查询中,聚合函数直接在`SELECT`列表中指定,而在`COMPUTE BY`中,它们在`COMPUTE`...

    2007年国家计算机二级vf答案详解.pdf

    19. **HAVING短语**:HAVING与GROUP BY配合使用,用于筛选分组后的数据,它必须放在GROUP BY之后。 20. **消除重复记录**:在SQL查询中,DISTINCT关键字用于从结果集中移除重复行。 21. **表间关系规则**:如果两...

    数据库实验 数据库系统环境搭建和基本操作.docx

    数据库实验是数据库系统环境搭建和基本操作的实验报告,旨在熟悉数据库软件操作环境与语法使用规则,为以后的数据库开发设计做准备。实验要求搭建基本的数据库开发平台,选择安装SQL SERVER, ACCESS, ORACLE, MYSQL...

    sql查询优化规则

    5. **GROUP BY:** 将VT4分组,生成VT5。 6. **WITH CUBE or WITH ROLLUP:** 进一步处理VT5,生成VT6。 7. **HAVING:** 对VT6应用HAVING筛选器,生成VT7。 8. **SELECT:** 按照SELECT子句指定的列从VT7中选择数据,...

    30个Oracle语句优化规则详解.doc

    - **分组和排序**:合理使用GROUP BY和ORDER BY,避免不必要的全表排序。 9. **分析统计信息**: 定期运行ANALYZE命令更新表和索引的统计信息,帮助COST优化器做出更精确的选择。 10. **表分区**: 对于大表,...

Global site tag (gtag.js) - Google Analytics