`
zzhdi
  • 浏览: 77233 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

Oracle 语法之 OVER (PARTITION BY ..)

阅读更多

Oracle 语法之 OVER (PARTITION BY ..)

select * from test

数据:
A   B   C 
1   1   1 
1   2  2 
1   3   3 
2   2  5 
3   4  6 


---将B栏位值相同的对应的C 栏位值加总
select a,b,c, SUM(C)  OVER (PARTITION BY B) C_Sum
from test

A   B   C   C_SUM  
1 1 1 1 
1 2 2 7 
2 2 5 7 
1 3 3 3 
3 4 6 6 



---如果不需要已某个栏位的值分割,那就要用 null

  eg:  就是将C的栏位值summary 放在每行后面

select a,b,c, SUM(C)  OVER (PARTITION BY null) C_Sum
from test

A   B   C   C_SUM  
1 1 1 17 
1 2 2 17 
1 3 3 17 
2 2 5 17 
3 4 6 17

分享到:
评论

相关推荐

    Oracle 语法之 OVER (PARTITION BY ..) 及开窗函数(转载)

    ### Oracle 语法之 OVER (PARTITION BY ..) 及开窗函数详解 #### 一、OVER (PARTITION BY ..) 概述 在Oracle数据库中,`OVER (PARTITION BY ...)` 是一种非常强大的功能,它允许用户在数据集上进行窗口操作。这在...

    Oracle row_number()over

    row_number() over ([partition by col1] order by col2) as 别名 ``` 其中,`partition by col1` 用于指定分区的列,`order by col2` 用于指定排序的列。 在使用 row_number()over 函数时,需要注意以下几点: * ...

    ORACLE_OVER函数

    ROW_NUMBER() OVER (PARTITION BY department_id ORDER BY salary DESC) AS row_num FROM employees; ``` 这个查询将为每个部门的员工按工资降序排列,并为每个员工分配一个行号。 ##### 示例2:使用SUM()计算...

    Oracle开发的over函数

    SUM(SAL) OVER (PARTITION BY DEPT_NO) AS DEPT_TOTAL_SALARY FROM EMPLOYEE; ``` 在这个示例中,我们使用了SUM函数结合OVER子句来计算每个部门的总薪水。可以看到,通过PARTITION BY DEPT_NO,我们可以为每个部门...

    oracle 9i 分析函数参考手册.rar

    PARTITION BY用于将数据分割成独立的组,而ORDER BY则指定在每个组内如何对行进行排序。 主要的Oracle 9i 分析函数包括: 1. RANK():根据指定的排序标准对行进行排名,返回一个唯一的整数值。 2. DENSE_RANK():...

    Oracle10gR2分析函数.pdf

    - **PARTITION BY**:用于分组数据,每个分组独立计算。 - **ORDER BY**:用于定义窗口内的行顺序。 - **ROWS 或 RANGE**:用于指定窗口的范围。 #### 三、常见分析函数及用法 1. **累计函数** - **SUM()**:...

    oracle分析函数row_number() over()使用

    这里,`SUM(sal) OVER (PARTITION BY deptno)`计算每个部门的总薪水,而`SUM(sal) OVER (PARTITION BY deptno ORDER BY ename)`则在每个部门内按照员工姓名排序并累加薪水。 此外,我们还可以通过改变`ORDER BY`...

    Oracle到mysql转换的问题总结.docx

    - 序列化函数:Oracle的`ROW_NUMBER() OVER(PARTITION BY ... ORDER BY ...)`, 在MySQL中可以使用用户变量和`IF`函数模拟实现。 例如,Oracle中的`ROW_NUMBER()`函数转换为MySQL,可以这样写: ```sql Oracle: ...

    Orcal中over函数.doc

    - **部门连续求和**:`SUM(sal) OVER (PARTITION BY deptno ORDER BY ename)`表示按照部门进行分组后,再按`ename`排序对薪资进行连续累加。 - **部门总和**:`SUM(sal) OVER (PARTITION BY deptno)`表示计算每个...

    Oracle到mysql转换的问题总结.doc

    - Oracle的窗口函数`ROW_NUMBER() OVER(PARTITION BY ... ORDER BY ...)`, MySQL无直接对应,可使用用户变量模拟实现。 - Oracle的`ROWNUM`行号在MySQL中需要通过用户变量或自连接实现分页效果。 转换时,需要...

    oracle统计函数.pdf

    其基本语法为row_number() over ([partition by column_name] order by column_name)。在这个语法中,partition by是可选的,用于将数据集分为几个部分,然后对每个部分进行排序和编号;order by是必须的,用于指定...

    ORACLE OLAP函数语法的总结

    SELECT deptno, ename, sal, SUM(sal) OVER (PARTITION BY deptno ORDER BY deptno RANGE UNBOUNDED PRECEDING) AS sum_sal FROM emp; ``` 当使用PARTITION BY时,RANGE UNBOUNDED PRECEDING会将每个分区内的所有行...

    oracle行转列聚合函数WMSYS.WM_CONCAT

    SELECT WMSYS.WM_CONCAT(column_name) OVER (PARTITION BY partition_column) FROM table_name; ``` **参数说明:** - `value1, value2, ..., valueN`:需要连接的字符串值。 - `column_name`:表中的某一列名,...

Global site tag (gtag.js) - Google Analytics