sql 精读(三) 标准 SQL 中的编号函数示例
生活随笔
收集整理的這篇文章主要介紹了
sql 精读(三) 标准 SQL 中的编号函数示例
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
編號函數概念
編號函數會根據每一行在指定窗口中的位置向該行分配整數值。
RANK()、DENSE_RANK() 和 ROW_NUMBER() 示例:
WITH Numbers AS(SELECT 1 as xUNION ALL SELECT 2UNION ALL SELECT 2UNION ALL SELECT 5UNION ALL SELECT 8UNION ALL SELECT 10UNION ALL SELECT 10 ) SELECT x,RANK() OVER (ORDER BY x ASC) AS rank,DENSE_RANK() OVER (ORDER BY x ASC) AS dense_rank,ROW_NUMBER() OVER (ORDER BY x) AS row_num FROM Numbers| 1 | 1 | 1 | 1 |
| 2 | 2 | 2 | 2 |
| 2 | 2 | 2 | 3 |
| 5 | 4 | 3 | 4 |
| 8 | 5 | 4 | 5 |
| 10 | 6 | 5 | 6 |
| 10 | 6 | 5 | 7 |
-
List item
-
RANK():x=5 時,rank 返回 4,因為 RANK() 按前一個窗口排序組中對等項的數量遞增。
-
DENSE_RANK():對于 x=5,dense_rank 返回 3,因為 DENSE_RANK() 總是遞增 1,絕不跳過值。
-
ROW_NUMBER():x=5 時,row_num 返回 4。
總結
以上是生活随笔為你收集整理的sql 精读(三) 标准 SQL 中的编号函数示例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: sql 精读(二) 标准 SQL 中的编
- 下一篇: sql 精读(四) 标准 SQL 中聚合