mysql之 sum() over(partition by)
2015-04-24 14:15
239 查看
SELECT empno, ename, sal, IF(@deptno = deptno, @sal := @sal, @sal := s_sal) AS s_sal, @deptno := deptno FROM ( SELECT empno, ename, sal, IF(@deptno = deptno, @sal := @sal + sal, @sal := sal) AS s_sal, @deptno := deptno AS deptno FROM (SELECT @sal := 0, @deptno := 0) a0, emp t ORDER BY deptno, empno )e ORDER BY deptno, empno DESC;
+-------+--------+------+-------+-------------------+ | empno | ename | sal | s_sal | @deptno := deptno | +-------+--------+------+-------+-------------------+ | 7934 | MILLER | 1300 | 8750 | 10 | | 7839 | KING | 5000 | 8750 | 10 | | 7782 | CLARK | 2450 | 8750 | 10 | | 7902 | FORD | 3000 | 10875 | 20 | | 7876 | ADAMS | 1100 | 10875 | 20 | | 7788 | SCOTT | 3000 | 10875 | 20 | | 7566 | JONES | 2975 | 10875 | 20 | | 7369 | SMITH | 800 | 10875 | 20 | | 7900 | JAMES | 950 | 9400 | 30 | | 7844 | TURNER | 1500 | 9400 | 30 | | 7698 | BLAKE | 2850 | 9400 | 30 | | 7654 | MARTIN | 1250 | 9400 | 30 | | 7521 | WARD | 1250 | 9400 | 30 | | 7499 | ALLEN | 1600 | 9400 | 30 | +-------+--------+------+-------+-------------------+ 14 rows in set (0.01 sec)
相关文章推荐
- MYSQL-实现ORACLE- row_number() over(partition by ) 分组排序功能优化
- mySql 实现排序函数row_number() over(partition by )
- mysql 实现row_number() over(partition by ) 分组排序功能
- mysql 实现oracle里面row_number() OVER (PARTITION BY cid,author ORDER BY id DESC) 的方法
- sum over partition by 的用法
- MYSQL-实现ORACLE- row_number() over(partition by ) 分组排序功能.
- Mysql实现ROW_NUMBER() over(PARTITION BY column1 order by column2)
- Oracle之sum / over / partition by / order by联合使用
- mysql: 实现row_number() over (partition by) 分组排序
- Mysql 分组聚合实现 over partition by 功能
- Mysql 分组聚合实现 over partition by 功能
- mysql 做出开窗函数的效果row number() OVER(PARTITION BY)
- MySQL基础-1-row_number() over( partition by expr1,expr2... order by expr1)
- MySQL实现Oracle的row_number()over(partition by)
- 分析函数入门sum...over(partition by xxx order by yyy rows between zzz)
- MYSQL-实现ORACLE- row_number() over(partition by ) 分组排序功能
- MYSQL-实现ORACLE 和SQLserver数据中- row_number() over(partition by ) 分组排序功能
- mysql实现ROW_NUMBER() over (PARTITION BY xx ORDER BY ** DESC)
- MYSQL-实现分组排序 对比 ORACLE 和SQLserver用 row_number() over(partition by ) 分组排序功能
- MySql ..IF.. 实现row_number() over(partition by ) 分组排序功能