select *,sum(字段) over()from table ;--相加所有行这个字段的和

select max(字段1),over(partition by  字段2,字段3) from table ;--根据字段2和字段3分区取出字段1的最大的

相当于

select max(字段1) from table  group by  字段2,字段3;

不过上面的sql会列出所有的行数,然后每一行多一个字段,字段值是一样的

这里的max 可以相应的改成min,avg,sum() 等等

但是如果出现

select 字段2,字段3  max(字段6) over (partition by  字段2,字段3 )from table  group by  字段2,字段3,字段5;

会报错的,因为max中的字段6没有在group 中。

可以使用子语句嵌套一下 让最顶层的select 不要出现group BY (SELECT * MAX() OVER() (SELECT .. FROM TABLE GROUP BY ..)  )

正确写法是

select t.*  max(字段6) over (partition by  字段2,字段3 )

from

(select 字段2,字段3,字段5,字段6 from table  group by  字段2,字段3,字段5,字段6)t;

这样每个字段2,字段3相同的值后面多一个相同的值

想要的结果应该是

select 字段2,字段3,字段5,maxp  from (

select t.*  max(字段6) over (partition by  字段2,字段3 ) maxp from (select 字段2,字段3,字段5,字段6 from table  group by  字段2,字段3,字段5,字段6)t

)tt

group by 字段2,字段3,字段5,maxp

可以使用子语句嵌套一下

oracle 窗口函数over的更多相关文章

  1. oracle窗口函数中range interval的使用

    oracle窗口函数中range interval配合一般用来针对指定时间范围进行统计.其中range表示范围,between...and 表示之前的范围和之后的范围 , CURRENT ROW表示当 ...

  2. ORACLE窗口函数

    --ORACLE窗口函数,是针对分析用的. --create tablecreate table EMP ( empno NUMBER(4) not null, ename VARCHAR2(10), ...

  3. Oracle窗口函数显示想要的行数

    Oracle中支持窗口函数ROW_NUMBER(),其用法和 MSSQLServer2005中相同,比如我们 执行下面的 SQL语句: SELECT * FROM ( SELECT ROW_NUMBE ...

  4. oracle 窗口函数 (keep)

    看到很多人对于keep不理解,这里解释一下! Returns the row ranked first using DENSE_RANK2种取值:DENSE_RANK FIRSTDENSE_RANK  ...

  5. Oracle树形结构数据---常见处理情景

    Oracle树形结构数据---常见处理情景 1.查看表数据结构 SELECT *      FROM QIANCODE.TREE_HIS_TABLE T  ORDER BY T.NODE_LEVEL; ...

  6. Hive新功能 Cube, Rollup介绍

    说明:Hive之cube.rollup,还有窗口函数,在传统关系型数据(Oracle.sqlserver)中都是有的,用法都很相似. GROUPING SETS GROUPING SETS作为GROU ...

  7. SQL金典

    ps:补充自己的基础知识,大神请无视.. ~~~~~~~~~~~~~~~~~~~~~ DataBase Management System,DBMS.... Catalog ...库 Table... ...

  8. LeetCode:180.连续出现的数字

    题目链接:https://leetcode-cn.com/problems/consecutive-numbers/ 题目 编写一个 SQL 查询,查找所有至少连续出现三次的数字. +----+--- ...

  9. Oracle开发之窗口函数 rows between unbounded preceding and current row

    目录=========================================1.窗口函数简介2.窗口函数示例-全统计3.窗口函数进阶-滚动统计(累积/均值)4.窗口函数进阶-根据时间范围统计 ...

随机推荐

  1. 牛客练习赛40 A 小D的剧场 (思维dp)

    链接:https://ac.nowcoder.com/acm/contest/369/A 题目描述 若你摘得小的星星 你将得到小的幸福  若你摘得大的星星 你将得到大的财富  若两者都能摘得 你将得到 ...

  2. QML学习笔记(七)— 实现可拖拽、编辑、选中的ListView

    鼠标单击可选中当前项,头部呈绿色显示:按压当前项可进行拖拽更换列表项位置:点击数据可以进行编辑: GitHub:八至 作者:狐狸家的鱼 这里是自己定义的model,有些字体和颜色都是使用的全局属性, ...

  3. 笔记:用标准c写 com dll

    在 [XXX.idl] 中 1. 如果想在脚本语言中传递一个值,并且在dll(c代码)中修改这个值并返回的话, 这个参数必须写为:[in, out] VARIANT* 如果写成 [in, out] i ...

  4. GUI 设计

    GUI(图形化界面编程) Graphical  User  Interface (java.Awt    javax.Swing) CLI(命令行操作接口) Command  line  User   ...

  5. rabbitMQ 3.6.15生产环境

    服务器配置 系统环境:CentOS 7 由于RabbitMQ依赖erlang, 所以需要先安装erlang 下载erlang 下载地址 http://erlang.org/download/ linu ...

  6. JavaSet接口、唯一元素和Map接口整理

    Set接口 1.1 HashSet集合存储数据的结构(哈希表) HashSet集合,采用哈希表结构存储数据,保证元素唯一性的方式依赖于:hashCode()与equals()方法. 哈希表底层,使用的 ...

  7. 基于python调用libvirt API

    基于python调用libvirt API 1.程序代码 #!/usr/bin/python import libvirt import sys def createConnection(): con ...

  8. Scrapy框架的执行流程解析

    这里主要介绍七个大类Command->CrawlerProcess->Crawler->ExecutionEngine->sceduler另外还有两个类:Request和Htt ...

  9. Linux记录-linux系统常用监控指标

    1.Linux运维基础采集项 做运维,不怕出问题,怕的是出了问题,抓不到现场,两眼摸黑.所以,依靠强大的监控系统,收集尽可能多的指标,意义重大.但哪些指标才是有意义的呢,本着从实践中来的思想,各位工程 ...

  10. Sqlserver中的触发器

    一 什么是触发器 1.1  触发器的概念   触发器(trigger)是SQL server来保证数据完整性的一种方法,它是与表事件相关的特殊的存储过程,它的执行是由事件来触发,当对一个表进行操作(  ...