SQL - VARP() 函式



SQL VARP() 函式計算特定列中欄位(數值)的總體標準方差。如果指定的行不存在,則此函式返回 NULL。

總體標準方差是衡量資料集與其平均值之間變異或離散程度的指標。從數學上講,平均值是給定數字的平均值,方差定義為與平均值的平方差的平均值。符號表示為σ2

語法

以下是SQL VARP() 函式的語法:

VARP(column_name)

引數

  • column_name − 這是我們要計算總體標準偏差方差的列的名稱。

示例

假設我們建立了一個名為 CUSTOMERS 的表,如下所示:

create table CUSTOMERS(ID INT NOT NULL, 
NAME VARCHAR(20) NOT NULL, 
AGE INT NOT NULL, 
ADDRESS CHAR(25), 
SALARY DECIMAL(18, 2), 
PRIMARY KEY(ID));

讓我們向其中插入值:

insert INTO CUSTOMERS VALUES(1, 'Ramesh', 32, 'Ahmedabad', 2000.00);
insert INTO CUSTOMERS VALUES(2, 'Khilan', 25, 'Delhi', 1500.00);
insert INTO CUSTOMERS VALUES(3, 'kaushik', 23, 'Kota', 2000.00);
insert INTO CUSTOMERS VALUES(4, 'Chaitali', 25, 'Mumbai', 6500.00);
insert INTO CUSTOMERS VALUES(5, 'Hardik', 27, 'Bhopal', 8500.00);
insert INTO CUSTOMERS VALUES(6, 'Komal', 22, 'MP', 4500.00);
insert INTO CUSTOMERS VALUES(7, 'Muffy', 24, 'Indore', 10000.00);

如果使用 select 語句檢索表,則會得到以下輸出:

+----+----------+-----+-----------+----------+
| ID | NAME     | AGE | ADDRESS   | SALARY   |
+----+----------+-----+-----------+----------+
|  1 | Ramesh   |  32 | Ahmedabad |  2000.00 |
|  2 | Khilan   |  25 | Delhi     |  1500.00 |
|  3 | Kaushik  |  23 | Kota      |  2000.00 |
|  4 | Chaitali |  25 | Mumbai    |  6500.00 |
|  5 | Hardik   |  27 | Bhopal    |  8500.00 |
|  6 | Komal    |  22 | MP        |  4500.00 |
|  7 | Muffy    |  24 | Indore    | 10000.00 |
+----+----------+-----+-----------+----------+

以下查詢計算所有客戶的薪資總體標準方差:

SELECT VARP(SALARY) as st_varp
from CUSTOMERS

輸出

+------------------+
| st_varp          |
+------------------+
| 10000000         |
+------------------+

示例

以下查詢返回所有薪資大於薪資總體標準方差平方根的客戶:

SELECT NAME, SALARY, AGE,ADDRESS
FROM CUSTOMERS
WHERE SALARY > (SELECT SQRT(VARP(SALARY)) FROM CUSTOMERS)

由於我們從上面的例子知道,薪資總體標準方差的平方根大約等於 3162.27。因此,執行上述程式碼時,我們得到以下輸出:

輸出

+----------+----------+-----+---------+
| NAME     | SALARY   | AGE | ADDRESS |
+----------+----------+-----+---------+
| Chaitali |  6500.00 |  25 | Mumbai  |
| Hardik   |  8500.00 |  27 | Bhopal  |
| Komal    |  4500.00 |  22 | MP      |
| Muffy    | 10000.00 |  24 | Indore  |
+----------+----------+-----+---------+

示例

現在,假設基於上表,我們想計算客戶不同(唯一)年齡的總體標準方差,那麼我們可以簡單地使用以下查詢:

SELECT VARP(DISTINCT AGE) as st_varp
from CUSTOMERS

輸出

+------------------+
| st_varp          |
+------------------+
| 10.9166666666667 |
+------------------+

示例

在這裡,我們嘗試獲取年齡大於 24 的所有客戶的薪資總體標準方差:

SELECT VARP(Salary) AS st_varp
FROM CUSTOMERS
WHERE AGE > 24;

輸出

+------------------+
| st_varp          |
+------------------+
| 8796875          |
+------------------+
sql-aggregate-functions.htm
廣告