当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


MySQL VARIANCE()用法及代码示例


有时我们需要计算MySQL中表达式的总体标准方差。 VARIANCE()函数可在MySQL中用于此目的。如果在给定的表达式中找不到匹配的行,则返回NULL。

用法:

VARIANCE(expr);

参数:此方法仅接受一个参数。

  • expr:我们要根据其计算标准方差的输入表达式。

返回值:它返回总体标准方差。

示例1:



使用VARIANCE函数从给定的StudentMarks表中查找sub1mark列的标准方差。

创建一个StudentMarks表:

CREATE TABLE StudentMarks
(
StudentId INT AUTO_INCREMENT,  
StudentName VARCHAR(100) NOT NULL,
Roll INT NOT NULL,
Sub1Mark INT NOT NULL,
Sub2Mark INT NOT NULL,
Sub3Mark INT NOT NULL,
TotalMarks INT NOT NULL,
PRIMARY KEY(StudentId )
);

将数据插入表中:

INSERT INTO StudentMarks
(StudentName, Roll, Sub1Mark, Sub2Mark, Sub3Mark,  TotalMarks)
VALUES
('Amit Jana', 10100, 85, 80, 95, 260),
('Labanya Mallick', 11000, 81, 89, 95, 265),
('Virat Sharma', 12000, 75, 83, 90, 248),
('Sayani Samanta', 13000, 95, 90, 99, 284),
('Riyanka Panda', 14000, 70, 87, 88, 245), 
('Ritika Shah', 15000, 78, 89, 90, 257);

要验证使用以下命令,如下所示。

SELECT  * from StudentMarks;

输出:

STUDENTID STUDENTNAME ROLL SUB1MARK SUB2MARK SUB3MARK TOTALMARKS
1 阿米特·贾娜(Amit Jana) 10100 85 80 95 260
2 拉班亚·马利克(Labanya Mallick) 11000 81 89 95 265
3 维拉特·沙玛(Virat Sharma) 12000 75 83 90 248
4 萨亚妮·萨曼塔(Sayani Samanta) 13000 95 90 99 284
5 里扬卡 Pandas 14000 70 87 88 245
6 里蒂卡·沙(Ritika Shah) 15000 78 89 90 257

现在我们将找到sub1mark列的标准方差。

SELECT  VARIANCE(Sub1Mark) as Sub1Variance 
FROM StudentMarks;

输出:

SUB1方差
62.88888888888891

示例2



现在,我们将找到“总分数”列的标准方差。

SELECT  VARIANCE(TotalMarks) as VarianceOfTotalMarks 
FROM StudentMarks;

输出:

VARIANCEOFTOTALMARKS
163.13888888888877

示例3:在此示例中,我们将找到在“ ABC Corp.”公司工作的“雇员收入”的总体标准方差。为演示创建一个名为EmloyeeDetails的表。

CREATE TABLE EmployeeDetails(

Employee_Id INT AUTO_INCREMENT,  
Employee_Name VARCHAR(100) NOT NULL,
Working_At VARCHAR(20) NOT NULL,
Work_Location  VARCHAR(20) NOT NULL,
Joining_Date DATE NOT NULL,
Annual_Income INT  NOT NULL,
PRIMARY KEY(Employee_Id )
);

将数据插入表中:

INSERT INTO  
EmployeeDetails(Employee_Name, Working_At, Work_Location, Joining_Date, Annual_Income )

VALUES
('Amit Khan', 'XYZ Digital', 'Kolkata', '2019-10-06', 350000 ),
('Shreetama Pal', 'ABC Corp.', 'Kolkata', '2018-12-16', 500000 ),
('Aniket Sharma', 'PQR Soln.', 'Delhi', '2020-01-11', 300000 ),
('Maitree Jana', 'XYZ Digital', 'Kolkata', '2019-05-01', 400000 ),
('Priyanka Ojha', 'ABC Corp.', 'Delhi', '2019-02-13', 350000 ),
('Sayani Mitra', 'XYZ Digital', 'Kolkata', '2019-09-15', 320000 ),
('Nitin Dey', 'PQR Soln.', 'Delhi', '2019-10-06', 250000 ),
('Sujata Samanta', 'PQR Soln.', 'Kolkata', '2020-10-06', 350000 ),
('Sudip Majhi', 'ABC Corp.', 'Delhi', '2018-10-30', 600000 ),
('Sanjoy Kohli', 'XYZ Digital', 'Delhi', '2019-04-18', 450000 ) ;

要验证使用以下命令,如下所示。

Select * FROM EmployeeDetails;

输出:

EMPLOYEE_ID EMPLOYEE_NAME WORKING_AT WORK_LOCATION JOINING_DATE ANNUAL_INCOME
1 阿米特·汗 XYZ数码 Kolkata 2019-10-06 350000
2 Shreetama Pal 美国广播公司 Kolkata 2018-12-16 500000
3 阿妮克特·沙玛 PQR Soln。 Delhi 2020-01-11 300000
4 玛雅特·贾娜 XYZ数码 Kolkata 2019-05-01 400000
5 普里扬卡·奥哈(Priyanka Ojha) 美国广播公司 Delhi 2019-02-13 350000
6 沙耶尼米特拉 XYZ数码 Kolkata 2019-09-15 320000
7 尼丁·戴(Nitin Dey) PQR Soln。 Delhi 2019-10-06 250000
8 Sujata Samanta PQR Soln。 Kolkata 2020-10-06 350000
9 Sudip Majhi 美国广播公司 Delhi 2018-10-30 600000
10 Sanjoy Kohli XYZ数码 Delhi 2019-04-18 450000

现在,我们要找到在“ ABC Corp.”工作的那些员工的年收入的人口标准差

SELECT  'ABC Corp.' AS 'Company_Name',
VARIANCE(Annual_Income) as VarianceOfAnnualIncome  
FROM EmployeeDetails where WORKING_AT = 'ABC Corp.';

输出:

COMPANY_NAME VARIANCEOFANNUALINCOME
美国广播公司 10555555555.555557

相关用法


注:本文由纯净天空筛选整理自jana_sayantan大神的英文原创作品 VARIANCE() function in MySQL。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。