MySQL - VARIANCE() 函式



MySQL 的 VARIANCE() 函式計算並返回特定列中所有值的總體標準方差,即衡量值與平均值的差異程度。

如果資料集中的所有值都相同,或者只有一個值,則方差將為 0。如果資料集中根本沒有值,則函式返回 NULL。

VARIANCE() 函式與 VAR_POP() 函式具有類似的語義。

語法

以下是 MySQL VARIANCE() 函式的語法:

VARIANCE(expr);

引數

此方法接受一個引數。下面描述了該引數:

  • expr: 我們要計算方差的表示式或列。

返回值

此函式計算並返回特定列中所有值的總體標準方差。

示例

首先,讓我們使用 CREATE TABLE 語句建立一個名為 CUSTOMERS 的表,如下所示:

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

以下查詢將 7 條記錄插入到上面建立的表中:

INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY) VALUES 
(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, 'Hyderabad', 4500.00 ),
(7, 'Muffy', 24, 'Indore', 10000.00 );

要驗證記錄是否已插入,請執行以下查詢:

Select * From CUSTOMERS;

以下是 CUSTOMERS 表:

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 Hyderabad 4500.00
7 Muffy 24 Indore 10000.00

這裡,我們使用 MySQL VARIANCE() 函式來計算所有客戶的工資的總體標準方差:

SELECT VARIANCE(SALARY) FROM CUSTOMERS;

輸出

這將產生以下結果:

VARIANCE(SALARY)
10000000

示例

以下查詢將返回 0 作為輸出,因為 CUSTOMERS 表中 ID = 2 和 ID = 5 的年齡是 相同 的:

SELECT VARIANCE(AGE) FROM CUSTOMERS
WHERE ID = 2;

上述查詢的輸出如下所示:

VARIANCE(Sale_amount)
0

現在,讓我們考慮一個數據集中只有一個 的場景:

SELECT VARIANCE(AGE) FROM CUSTOMERS
WHERE ID = 3;

上述查詢的結果也將為 0,因為只有一個年齡為 23 的客戶:

VARIANCE(Sale_amount)
0

現在,讓我們考慮一個數據集中 沒有資料 的場景:

SELECT VARIANCE(AGE) FROM CUSTOMERS
WHERE ID = 10;

此查詢的結果將為 NULL,因為表中不存在 ID = 3 的值:

VARIANCE(Sale_amount)
NULL
廣告