绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
HDC·Cloud | GaussDB T 其他函数ROW_NUMBER() OVER
2020-04-27 10:27:58

ROW_NUMBER() OVER

语法:

ROW_NUMBER() OVER (partition by expr order by expr)

功能:只能用于column list中,对查询返回的数据先进行分组再进行排序,然后分组打上排序序号。

示例:

根据部门分组,显示每个部门的工资等级。

--删除表employee
DROP TABLE IF EXISTS employee;
--创建表employee
CREATE TABLE employee (staff_id INT,section_id INT,max_salary NUMBER(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);
--提交事务。
COMMIT;
--按部门查询员工工资,并进行排序。
SELECT *, Row_Number() OVER (partition by section_id ORDER BY max_salary desc) rank FROM employee;

STAFF_ID SECTION_ID MAX_SALARY RANK
------------ ------------ ---------------------------------------- ------------
1 10 5500 1
2 10 4500 2
4 20 4800 1
3 20 1900 2
7 40 44500 1
6 40 14500 2
5 40 6500 3

7 rows fetched.



分享好友

分享这个小栈给你的朋友们,一起进步吧。

GaussDB_数据库
创建时间:2020-01-06 16:21:44
华为GaussDB数据库小栈
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

技术专家

查看更多
  • GaussDB_数据库
    专家
戳我,来吐槽~