SQL 中 RANK 函數根據指定列排序後對行進行排名,結果集傳回每個行的排名,從 1 開始,相同值具有相同排名。分區表達式可指定分區列,僅在每個分區內進行排名,排序表達式指定排序列,排名依此列資料順序決定。
SQL 中RANK 函數的用法
RANK 函數用於對一組行進行排名,根據指定列中數據的順序。它是一個聚合函數,會在聚合後的結果集中傳回每個行的排名。
語法
<code>RANK() OVER (PARTITION BY partition_expression ORDER BY order_expression)</code>
參數
傳回值
RANK 函數傳回一個整數,表示每個行的排名。排名從 1 開始,排在第一位的行具有最高的排名。如果多行具有相同的值,則它們將具有相同的排名。
範例
<code class="sql">SELECT department_id, employee_name, RANK() OVER (PARTITION BY department_id ORDER BY salary DESC) AS rank FROM employee_table;</code>
結果
<code>department_id | employee_name | rank ------------- | ------------- | ---- 1 | John Smith | 1 1 | Jane Doe | 2 2 | Peter Parker | 1 2 | Mary Johnson | 2</code>
在這個範例中,我們對employee_table
按下department_id
分區並依salary
降序排序。對於每個部門,員工會根據其薪資進行排名。
注意
以上是sql中rank的用法的詳細內容。更多資訊請關注PHP中文網其他相關文章!