over不能單獨使用,要和分析函數:rank(),dense_rank(),row_number(),ntile()(參考:https://www.cnblogs.com/shizhijie/p/9366247.html) 等一起使用。
其參數:over(partition by columnname1 order by columnname2)
含義:按columname1指定的字段進行分組排序,或者說按字段columnname1的值進行分組排序。
例如:employees表中,有兩個部門的記錄:department_id =10和20
select department_id,rank() over(partition by department_id order by salary) from employees就是指在部門10中進行薪水的排名,在部門20中進行薪水排名。如果是partition by org_id,則是在整個公司內進行排名。
以下是個人見解:
sql中的over函數和row_numbert()函數配合使用,可生成行號。可對某一列的值進行排序,對於相同值的數據行進行分組排序。
執行語句:select row_number() over(order by AID DESC) as rowid,* from bb