SQL Server常用的函數
更新時間 2023-12-13 22:25:19
最近更新時間: 2023-12-13 22:25:19
分享文章
本節主要介紹了SQL Server一些常用的函數,供用戶在生產和實踐中使用。
聚合函數
聚合函數是指對一組值計算,并返回單個值的計算結果。 除了 COUNT(*) 外,聚合函數都會忽略 Null 值。 聚合函數通常與 SELECT 語句的 GROUP BY 子句一起使用。
所有聚合函數均為確定性函數。 換言之,每次使用一組特定的輸入值調用聚合函數時,它們所返回的值都是相同的。
APPROX_COUNT_DISTINCT
APPROX_COUNT_DISTINCT( expression ) 計算組中每行的表達式,并返回組中唯一非空值的近似數。 此函數旨在跨響應速度比絕對精度更為關鍵的大型數據集進行聚合。
使用 APPROX_COUNT_DISTINCT
此示例返回學生表中不同主鍵的近似數。
SELECT APPROX_COUNT_DISTINCT(TestKey) AS result
FROM db1.students;
下面是結果集:
result
------------------------
12456
結合使用 APPROX_COUNT_DISTINCT 和 GROUP BY
此示例返回學生表中不同主鍵的近似數。
SELECT AGE, APPROX_COUNT_DISTINCT(O_OrderKey) AS Result
FROM db1.students
GROUP BY AGE
ORDER BY AGE;
下面是結果集。
AGE Result
---------------------------------------------------------------- ------------------------
11 7397838
12 7387803
13 388036
CHECKSUM_AGG
CHECKSUM_AGG ( [ ALL | DISTINCT ] expression ) 函數返回組中各值的校驗和。 CHECKSUM_AGG 將忽略 null 值。
| 參數 | 介紹 |
|---|---|
| ALL | 向所有值應用此聚合函數。 ALL 為默認參數。 |
| DISTINCT | 指定 CHECKSUM_AGG 返回唯一值的校驗和。 |
| expression | 整數表達式。 |
分析函數
分析函數基于一組行計算聚合值。 但是,與聚合函數不同,分析函數可能針對每個組返回多行。 可以使用分析函數來計算移動平均線、運行總計、百分比或一個組內的前 N 個結果。
CUME_DIST
函數會計算某個值在某個值組內的累積分布。 換言之,CUME_DIST 計算某指定值在一組值中的相對位置。 假定采用升序,行 r 中 CUME_DIST 的值定義為低于或等于行 r 的值的行數除以在分區或查詢結果集中求出的行數。
語法:
CUME_DIST( )
OVER ( [ partition_by_clause ] order_by_clause )
partition_by_clause 將 FROM 子句結果集劃分為要應用函數的分區。 如果未指定 partition_by_clause 參數,則 CUME_DIST 將查詢結果集的所有行視為單個組。 order_by_clause 確定操作發生的邏輯順序。