row_number() 是分析函数,分析函数主要用于有分组分析的SQL中,针对楼主使用的row_number() 函数,我给简单解释一下 分析函数的语法如下: <函数>(<字段1>,<字段2>,...)over (partition by <分组字段> order by <分组后排序字段> <窗口字句>) 其中<>中的内容可以根据实际使用的函数来改变 而row_number() 函数的语法中partition by 和order by 是必须要有的部分,就好像写select要有from部分一样,楼主的sql中缺失了关键字partition by 所以会报错 我来举个row_number() 函数用法的例子来帮助理解: 现在有表A(ID,姓名,部门,工资) ID 姓名 部门 工资 1 张三 部门A 1000 2 李四 部门A 2000 3 王五 部门B 2000 4 赵六 部门B 3000 5 钱七 部门C 1000 如果我想取得各个部门中工资最多的人的信息(姓名,部门,工资),那么使用分析函数会比较方便 select X.姓名,X.部门,X.工资 from (select row_number() over(partition by 部门 order by 工资 desc) as No,姓名,部门,工资 from 表A) X where X.No=1 实行结果: 姓名 部门 工资 李四 部门A 2000 赵六 部门B 3000 钱七 部门C 1000
oracle row_number() 函数的应用
最新推荐文章于 2024-08-21 22:10:14 发布