博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
sql server标识一个字符在这一列中是第几次出现
阅读量:7087 次
发布时间:2019-06-28

本文共 2335 字,大约阅读时间需要 7 分钟。

表样如下,怎样计算A列中的数据在A列中是第几次出现,从而得到B列中的数据?即第一行的1是第一次出现,第三行的1是第2次出现,以次类推。A  B1  12  11  24  15  11  33  12  23  25  2

 

sql 2005 语法如下(sql 2000不支持ROW_NUMBER()):

 

select a,row_number() over(partition by a order by a) bfrom 表

 

 

 

语法:ROW_NUMBER() OVER(PARTITION BY COLUMN ORDER BY COLUMN)简单的说row_number()从1开始,为每一条分组记录返回一个数字,这里的ROW_NUMBER() OVER (ORDER BY xlh DESC) 是先把xlh列降序,再为降序以后的没条xlh记录返回一个序号。 示例: xlh           row_num 1700              1 1500              2 1085              3 710                4row_number() OVER (PARTITION BY COL1 ORDER BY COL2) 表示根据COL1分组,在分组内部根据 COL2排序,而此函数计算的值就表示每组内部排序后的顺序编号(组内连续的唯一的)实例:初始化数据create table employee (empid int ,deptid int ,salary decimal(10,2))insert into employee values(1,10,5500.00)insert into employee values(2,10,4500.00)insert into employee values(3,20,1900.00)insert into employee values(4,20,4800.00)insert into employee values(5,40,6500.00)insert into employee values(6,40,14500.00)insert into employee values(7,40,44500.00)insert into employee values(8,50,6500.00)insert into employee values(9,50,7500.00)数据显示为empid       deptid      salary----------- ----------- ---------------------------------------1           10          5500.002           10          4500.003           20          1900.004           20          4800.005           40          6500.006           40          14500.007           40          44500.008           50          6500.009           50          7500.00需求:根据部门分组,显示每个部门的工资等级预期结果:empid       deptid      salary                                  rank----------- ----------- --------------------------------------- --------------------1           10          5500.00                                 12           10          4500.00                                 24           20          4800.00                                 13           20          1900.00                                 27           40          44500.00                                16           40          14500.00                                25           40          6500.00                                 39           50          7500.00                                 18           50          6500.00                                 2SQL脚本:SELECT *, Row_Number() OVER (partition by deptid ORDER BY salary desc) rank FROM employee

 

转载于:https://www.cnblogs.com/wifi/articles/5300570.html

你可能感兴趣的文章
Myeclipse10.7 汉化,汉化全面!
查看>>
汇总:JSTL时间操作
查看>>
常用工具网站
查看>>
史上最全互联网分布式缓存技术视频教程(redis、memcached、ssdb)
查看>>
笨兔兔的故事——带你了解Ubuntu,了解Linux 信封 第二十二章
查看>>
100-2
查看>>
hdu 1541 树状数组
查看>>
系统负载
查看>>
mac osx修改mac地址和路由表
查看>>
ORA-100501: non-ORACLE exception
查看>>
要996还是要生活?
查看>>
不想转型高升?12条箴言助IT人士提高效率
查看>>
我的友情链接
查看>>
Eclipse ctrl+shift+o 快捷键失效
查看>>
集合源码研究—ArrayList
查看>>
域用户权限|无法连接打印机
查看>>
dpdk编译安装
查看>>
为何离开上家公司?
查看>>
正则表达式分类
查看>>
关于恋爱的一些话语
查看>>