按字段进行排序
比如:
编号 InfoId, SeriesId,
11 a class_1
22 b class_1
33 c class_1
44 d class_2
55 e class_2
66 f class_2
... ... ...
-----------------------------
查询出来结果是这样
11 a class_1 1
22 b class_1 2
33 c class_1 3
44 d class_2 1
55 e class_2 2
66 f class_2 3
---------------------------------------------------------------
Select InfoId, SeriesId,
ROW_NUMBER() OVER(PARTITION BY SeriesId ORDER BY InfoId) AS ord
FROM [uc_QuotePrice] WITH (NOLOCK)
ORDER BY SeriesId,ord
---------------------------------------------------
OVER (PARTITION BY…)的用法
OVER (PARTITION BY…) 按照某列分割/区分
SELECT EMP.*,SUM(SAL) OVER(PARTITION BY DEPTNO) 本部门工资总和 FROM EMP
deptno ename sal 本部门工资总和
1 10 CLARK 2450.00 8750
2 10 KING 5000.00 8750
3 10 MILLER 1300.00 8750
4 20 SMITH 800.00 10875
5 20 ADAMS 1100.00 10875
6 20 FORD 3000.00 10875
7 20 SCOTT 3000.00 10875
8 20 JONES 2975.00 10875
9 30 ALLEN 1600.00 9400
10 30 BLAKE 2850.00 9400
11 30 MARTIN 1250.00 9400
12 30 JAMES 950.00 9400
13 30 TURNER 1500.00 9400
14 30 WARD 1250.00 9400
将DEPTNO列列值相同的对应的sal加和
如果不需要已某个列的值分割,那就要用null,因为没有分割列,所以“工资总和”的值为所有sal列的值的和
SELECT EMP.*,SUM(SAL) OVER(PARTITION BY DEPTNO) 工资总和 FROM EMP
1 10 CLARK 2450.00 29025
2 10 KING 5000.00 29025
3 10 MILLER 1300.00 29025
4 20 SMITH 800.00 29025
5 20 ADAMS 1100.00 29025
6 20 FORD 3000.00 29025
7 20 SCOTT 3000.00 29025
8 20 JONES 2975.00 29025
9 30 ALLEN 1600.00 29025
10 30 BLAKE 2850.00 29025
11 30 MARTIN 1250.00 29025
12 30 JAMES 950.00 29025
13 30 TURNER 1500.00 29025
14 30 WARD 1250.00 29025
使用 sum(sal) over (order by ename)... 查询员工的薪水"连续"求和
SELECT EMP.*,SUM(SAL) OVER(ORDER BY ENAME) 按姓名排序后连续求和,100*ROUND(SAL/SUM(SAL) OVER (),4) "份额(%)" FROM EMP
1 20 ADAMS 1100.00 1100 3.79
2 30 ALLEN 1600.00 2700 5.51
3 30 BLAKE 2850.00 5550 9.82
4 10 CLARK 2450.00 8000 8.44
5 20 FORD 3000.00 11000 10.34
6 30 JAMES 950.00 11950 3.27
7 20 JONES 2975.00 14925 10.25
8 10 KING 5000.00 19925 17.23
9 30 MARTIN 1250.00 21175 4.31
10 10 MILLER 1300.00 22475 4.48
11 20 SCOTT 3000.00 25475 10.34
12 20 SMITH 800.00 26275 2.76
13 30 TURNER 1500.00 27775 5.17
14 30 WARD 1250.00 29025 4.31
SELECT EMP.*,SUM(SAL) OVER (PARTITION BY DEPTNO ORDER BY ENAME) 按照部门连续求总和 FROM EMP
1 10 CLARK 2450.00 2450
2 10 KING 5000.00 7450
3 10 MILLER 1300.00 8750
4 20 ADAMS 1100.00 1100
5 20 FORD 3000.00 4100
6 20 JONES 2975.00 7075
7 20 SCOTT 3000.00 10075
8 20 SMITH 800.00 10875
9 30 ALLEN 1600.00 1600
10 30 BLAKE 2850.00 4450
11 30 JAMES 950.00 5400
12 30 MARTIN 1250.00 6650
13 30 TURNER 1500.00 8150
14 30 WARD 1250.00 9400
SELECT EMP.*,SUM(SAL) OVER (ORDER BY DEPTNO,ENAME) 所有部门连续求总和 FROM EMP
1 10 CLARK 2450.00 2450
2 10 KING 5000.00 7450
3 10 MILLER 1300.00 8750
4 20 ADAMS 1100.00 9850
5 20 FORD 3000.00 12850
6 20 JONES 2975.00 15825
7 20 SCOTT 3000.00 18825
8 20 SMITH 800.00 19625
9 30 ALLEN 1600.00 21225
10 30 BLAKE 2850.00 24075
11 30 JAMES 950.00 25025
12 30 MARTIN 1250.00 26275
13 30 TURNER 1500.00 27775
14 30 WARD 1250.00 29025
sum(sal) over () 不按部门,求所有员工总和,效果等同于sum(sal)。
部门从大到小排列,部门里各员工的薪水从高到低排列
SELECT DEPTNO,ENAME,SAL,SUM(SAL) OVER(PARTITION BY DEPTNO ORDER BY DEPTNO DESC, SAL DESC) DEPT_SUM,
SUM(SAL) OVER(ORDER BY DEPTNO DESC, SAL DESC) SUM FROM EMP;
1 30 BLAKE 2850.00 2850 2850
2 30 ALLEN 1600.00 4450 4450
3 30 TURNER 1500.00 5950 5950
4 30 MARTIN 1250.00 8450 8450
5 30 WARD 1250.00 8450 8450
6 30 JAMES 950.00 9400 9400
7 20 FORD 3000.00 6000 15400
8 20 SCOTT 3000.00 6000 15400
9 20 JONES 2975.00 8975 18375
10 20 ADAMS 1100.00 10075 19475
11 20 SMITH 800.00 10875 20275
12 10 KING 5000.00 5000 25275
13 10 CLARK 2450.00 7450 27725
14 10 MILLER 1300.00 8750 29025
铁观音-厂家直销
分享到:
相关推荐
partition by关键字是分析性函数的一部分,partition by用于给结果集分组,如果没有指定那么它把整个结果集作为一个分组,本文给大家介绍SQLServer中Partition By及row_number 函数使用详解,需要的朋友参考下
主要介绍了Oracle查询中OVER (PARTITION BY ..)用法,内容和代码大家参考一下。
Introduce the way to partition large SQL Table.
Partition Table in MS SQL Server
该软件界面简洁大方,使用操作方便,免费是用来设计恢复数据丢失,删除或损坏的分区事故。同时还可以帮助恢复数据的硬盘驱动器崩溃时,MBR损坏,重新分区磁盘或分区(FDISK)覆盖等,希望对网友们有帮助。 分区数据...
譬如笔记本使用起来发现C盘空间快要满了,IM-Magic Partition Resizer 可以帮助您从其他分区调一些空间过来。 IM-Magic Partition Resizer是一款能在不需要格式化和重新安装系统的情况下,管理和调整用户的磁盘,...
简单的学习例子 sqlserver 存储过程、函数的创建和使用 和 常用知识点
这种查询在SQL Server 2005之前,写起来很繁琐,需要用到临时表关联查询才能取到。SQL Server 2005后之后,引入了row_number()函数,row_number()函数的分组排序功能使这种操作变得非常简单。下面是一个简单示例: ...
wanwan-coco-partition框架,极简框架用于测试spring框架是否可用
外间隔时间限制SQLServer - SQL 100 天 连续挑战 100 天学习 SQL 语法,另外可以复习之外,也可以厘清很多不懂的地方。 第67天。 在 VScode 中更新代码片段 更新片段 第66天。 [LeetCode-#184] 部门最高工资 目的 ...
partition by 使用说明
9.3.4 CowNewSQL的使用方法 第10章 高级话题 10.1 SQL注入漏洞攻防 10.1.1 SQL注入漏洞原理 10.1.2 过滤敏感字符 10.1.3 使用参数化SQL 10.2 SQL调优 10.2.1 SQL调优的基本原则 10.2.2 索引 ...
废话不多说了,直接给大家贴代码了,具体代码如下所示: -- 开窗函数:在结果集的基础上进一步处理(聚合操作) ...-- Partition By 分组统计数量 -- 根据性别分组后,统计 SELECT COUNT(*) OVER ( PARTITION
ranking_function over([partition by col_list] order by col_list) ROW_NUMBER:在排序的基础上对所有列进行连续的数字进行标识。 执行顺序:为了计算列值,优化器首先需要把数据在分区列上进行排序,然后在对...
9.3.4 CowNewSQL的使用方法 第10章 高级话题 10.1 SQL注入漏洞攻防 10.1.1 SQL注入漏洞原理 10.1.2 过滤敏感字符 10.1.3 使用参数化SQL 10.2 SQL调优 10.2.1 SQL调优的基本原则 10.2.2 索引 ...
9.3.4 CowNewSQL的使用方法 第10章 高级话题 10.1 SQL注入漏洞攻防 10.1.1 SQL注入漏洞原理 10.1.2 过滤敏感字符 10.1.3 使用参数化SQL 10.2 SQL调优 10.2.1 SQL调优的基本原则 10.2.2 索引 ...
9.3.4 CowNewSQL的使用方法 第10章 高级话题 10.1 SQL注入漏洞攻防 10.1.1 SQL注入漏洞原理 10.1.2 过滤敏感字符 10.1.3 使用参数化SQL 10.2 SQL调优 10.2.1 SQL调优的基本原则 10.2.2 索引 ...
As Partition Magic alternative, EASEUS Partition Master freeware is an ALL-IN-ONE partition software and the most convenient hard disk partition manager toolkit including Partition Manager, Disk & ...