• Oracle常用查询命令


       Oracle查询完整格式如下:

         Select  *  from XX where XX group by YY having XX order by YY

         Select count(*), XX from tt group by XX 对结果统计计数

      下面针对group by的用途进行说明。

    一、概述 

       "Group By"从字面意义上理解就是根据"By"指定的规则对数据进行分组,所谓的分组就是将一个"数据集"划分成若干个"小区域",然后针对若干个"小区域"进行数据处理。

    二、原始表

       

    三、示例

      示例1

    select 类别, sum(数量) as 数量之和
    from A
    group by 类别

    返回结果如下表,实际上就是分类汇总:

    Group By中Select指定的字段限制

    select 类别, sum(数量) as 数量之和, 摘要
    from A
    group by 类别
    order by 类别 desc

    示例3执行后会提示下错误,如下图。这就是需要注意的一点,在select指定的字段要么就要包含在Group By语句的后面,作为分组的依据;要么就要被包含在聚合函数中。

    示例2

    select 类别, 摘要, sum(数量) as 数量之和
    from A
    group by all 类别, 摘要

    示例4中则可以指定“摘要”字段,其原因在于“多列分组”中包含了“摘要字段”,其执行结果如下表

    "多列分组"实际上就是就是按照多列(类别+摘要)合并后的值进行分组,示例4中可以看到"a, a2001, 13"为"a, a2001, 11"和"a, a2001, 2"两条记录的合并.

    四、Group By与聚合函数

    group by语句中select指定的字段必须是“分组依据字段”,其他字段若想出现在select中则必须包含在聚合函数中,常见的聚合函数如下表:

    Having与Where的区别

       where 子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,where条件中不能包含聚组函数,使用where条件过滤出特定的行。

       having 子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,使用having 条件过滤出特定的组,也可以使用多个分组标准进行分组。

    参见:http://www.cnblogs.com/rainman/archive/2013/05/01/3053703.html

  • 相关阅读:
    sql server 索引总结一
    公用表表达式(CTE)
    解决Setting property 'source' to 'org.eclipse.jst.jee.server的问题
    python测试开发django-2.templates模板与html页
    python测试开发django-1.开始hello world!
    pytest文档28-重复执行用例(pytest-repeat)
    pytest文档27-pytest分布式执行(pytest-xdist)
    pytest文档26-运行上次失败用例(--lf 和 --ff)
    pytest文档25-conftest.py作用范围
    python接口自动化11-post传data参数案例
  • 原文地址:https://www.cnblogs.com/moonandstar08/p/5308897.html
Copyright © 2020-2023  润新知