`
fantaxy025025
  • 浏览: 1308947 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

DB_group_by_数据库分组函数的用法总结

阅读更多

 

Oracle_SQL_group_by Oracle SQL group by 分组函数的用法总结

 

需要在Oracle中用group by语句,发现有些理解并不是太到位。

翻看自己总结的Informix数据库关于group by的使用注意事项,发现跟Oracle是一样的。

 

同时google一下网上其他人的总结,发现有些总结并不到位。

 

例如1:http://hi.baidu.com/ws528/blog/item/ded717d9236c412b11df9baa.html 中写到: 只要字段不带有聚合函数的都要加入到group by 的字段中“。

这个原则是对的,但是没有说到实质内容,仅仅形式上对了。

 

例如2:http://blog.csdn.net/zhaozhongju/archive/2009/05/13/4177047.aspx 中写到:”Group By子句与Where子句是不兼容的“。

这本身是个错误。不过如果永远不在group by中写where是不会出错的哦~

 

group by 总结

 

 

例子:

select order_num, sum(total_price)

from items

where order_num > 1018 and quantity > 2

group by order_num

having order_num > 1012 and sum(total_price) > 1000.0

;

 

形式:

select clm_a, clm_b, … , FUNK_A(clm_x)

from tbl_x

where clm_y… clm_z…

group by clm_a, clm_b, …

having clm_a… or FUNK_A(xxx)=…

order by group_column

 

总结:

过程: select * where  -->> group + function -->> having

1 select  + where 选出要进行处理的行;where中的列不受group中的列限制;

2 group by 条件确定可以 group 的行,这些行之后将要用统计函数 FUNK_A 统计这些行

3 group 操作使得可 group 的行仅仅显示一行,并用统计函数分组统计

4 having 条件对group结果进行条件过滤

           如同 whereselect的结果过滤一样; 不可用别名

5 ) order by 条件必须是group中存在的;如果有having则order by必须放在having之后

注意:

1 select 中的列 group 中的列 的子集( select写的列必须在 group 中出现),但不包括分组函数

2 )因为初选时用 * ,所以 where 中可以出现任何列,统计函数中也可以出现任何列

3 having 是在 group 之后进行的,所以 having 出现时必须有 group ,同时 having 中的列必须在 select 中出现 ; 同时不能用列的别名

 

 

 

 

分享到:
评论

相关推荐

    db_lab1:实验1数据库

    5. 关系运算符和查询:掌握SELECT语句,包括WHERE子句、JOIN操作(内连接、外连接)、聚合函数(COUNT, SUM, AVG, MAX, MIN)以及分组(GROUP BY)和排序(ORDER BY)。 6. 存储过程和触发器:了解如何编写存储过程...

    最基础的db2数据库学习总结终稿.pdf

    本文档总结了 DB2 数据库的基础知识点,包括数据库连接、表结构查看、索引查看、查询语句、函数使用、统计函数、排序、分组等。 一、数据库连接 在 DB2 中,连接数据库使用以下命令:db2 connect to 数据库名; 二...

    MVUB_0503_C1_SYBASE数据库培训教材

    分组(Group By)用于根据指定字段对数据进行分类汇总;排序(Order By)则按照指定字段对结果进行排序。 #### 四、数据库对象的操作 **1. 数据库** - **创建(Create Database):** 创建新的数据库实例。 - **删除...

    人大金仓数据库适配mysql

    - KingbaseES对 `GROUP BY` 语句的执行更为严格,仅允许选择聚合函数或分组字段。 示例: ```sql SELECT COUNT(*), name FROM test GROUP BY name; ``` 综上所述,从MySQL迁移到人大金仓KingbaseES的过程中,需要...

    DBClass.zip_ACCESS数据库_access 查询

    对于复杂的查询需求,可以利用JOIN操作连接多个表,或者使用GROUP BY和HAVING子句进行分组和条件筛选。 5. **编程与DBClass.cs**:在DBClass.cs中,可能定义了一个名为DBClass的类,用于封装与Access数据库的交互...

    IBM DB2通用数据库SQL入门

    学习如何使用`WHERE`子句进行条件筛选,`GROUP BY`和`HAVING`进行分组统计,`JOIN`操作合并多表数据,以及`ORDER BY`进行排序,是提升查询效率的关键。 6. **索引** 索引可以极大地提高查询速度。通过`CREATE ...

    从mysql数据库中挑选重复用户

    SELECT `username` FROM db_member GROUP BY `username` HAVING COUNT(`username`) > 1 ) ``` 这条SQL语句的主要功能是从`db_member`表中筛选出那些用户名(`username`)重复出现的记录。下面我们将逐步解析这条...

    DB_sqlzoo.zip_answers

    更高级的用法包括`GROUP BY`进行分组,`HAVING`对分组后的结果过滤,以及`ORDER BY`进行排序。 3. **聚合函数**:在SQL Zoo中,你会遇到`COUNT()`, `SUM()`, `AVG()`, `MIN()`, 和 `MAX()`这些聚合函数,它们用于对...

    DB2 函数大全

    例如,通过`SELECT`语句结合`WHERE`子句和`GROUP BY`子句,可以对数据库中的数据进行过滤、分组和聚合分析。 "DB2函数大全"的文本文件很可能是对这些函数的详尽概述,包括它们的语法、参数、返回值以及使用示例。...

    db2,oracle函数大全合集

    6. **分组和窗口函数**:如`GROUP BY`, `RANK()`, `LEAD()`, `LAG()`, 用于复杂的数据分组和分析。 7. **条件函数**:`DECODE()`, `NVL()`, `CASE`, 用于条件判断和空值处理。 8. **连接函数**:`CONNECT_BY_ROOT()`...

    DB2 通用数据库 SQL 入门

    - GROUP BY语句用于结合聚合函数(如SUM()、AVG()等)对结果集进行分组。 - 示例:`SELECT department, AVG(salary) FROM employees GROUP BY department;` 2. **HAVING 子句** - HAVING子句用于过滤GROUP BY...

    IBM DB2数据库——SQL入门

    - **分组**:使用GROUP BY子句将查询结果按一个或多个列进行分组,并结合聚合函数使用。 ##### >}}] (第8章:连接查询) - **连接查询**:介绍如何使用JOIN关键字连接两个或多个表来检索数据。 - **INNER JOIN**:...

    Django中使用group_by的方法

    在Django中,`group_by` 是SQL查询中的一个关键字,用于对数据库查询结果进行分组,通常与聚合函数(如 COUNT, SUM, AVG, MAX, MIN)一起使用,以便对相同字段值的数据进行统计分析。然而,Django ORM(对象关系映射...

    DB2到GreenPlum/PostgreSQL的转换指南

    - ORDER BY、GROUP BY、HAVING子句的使用方法。 - 动态游标、连接操作、子查询的处理方式。 - UNION和UNION ALL的用法。 - 动态SQL的实现。 - 条件处理、打印输出消息、隐式类型转换等内容。 #### 2. 转换参考 ###...

    DB2数据库教程

    在教程中,会介绍SQL的基础语法,比如数据查询语句SELECT的基本用法,以及数据定义语句如CREATE TABLE创建新表,还包括数据更新语句UPDATE、INSERT和DELETE的使用方法。 对于初学者来说,学习DB2数据库还必须掌握...

    数据库实验报告

    3. **GROUP BY**和**HAVING**:对查询结果进行分组统计,并对分组结果进行筛选。 **Transact-SQL函数** 1. 在查询中应用函数,如查找名字含特定字符的记录,或找出工作年限超过特定值的员工。 **创建和使用索引** ...

    高级软件人才培训专家-Hadoop课程资料-5-第五章 - 分布式SQL计算 Hive 语法与概念

    具体知识点涵盖了数据库操作、数据表操作、数据查询方法、内置函数应用以及具体的案例分析。 #### 数据库操作 - **创建数据库**: - `CREATE DATABASE [IF NOT EXISTS] db_name [LOCATION 'path'];`:创建数据库...

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

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

    Laravel 实现Eloquent模型分组查询并返回每个分组的数量 groupBy()

    本文将详细介绍如何使用Eloquent模型实现分组查询并返回每个分组的数量,主要涉及`groupBy()`方法。 首先,`groupBy()`方法是SQL查询中的一个关键组成部分,它允许你根据一个或多个字段对查询结果进行分组。在...

Global site tag (gtag.js) - Google Analytics