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() 函數的應用
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.