📜  MySQL 中的 STDDEV_SAMP()函数

📅  最后修改于: 2022-05-13 01:55:20.695000             🧑  作者: Mango

MySQL 中的 STDDEV_SAMP()函数

MySQL 中的STDDEV_SAMP()函数用于计算表达式的样本标准偏差。

句法 :

STDDEV_SAMP(expr);

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

  • expr :我们要从中计算样本标准偏差的输入表达式。

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

示例-1:
使用 STDDEV_SAMP函数从给定的 Player 表中查找 RunScored 列的样本标准偏差。

创建玩家表:

CREATE TABLE Player  
(
PlayerId INT AUTO_INCREMENT,  
PlayerName VARCHAR(100) NOT NULL,
RunScored INT NOT NULL,
WicketsTaken INT NOT NULL,
PRIMARY KEY(PlayerId)
);

插入数据到表中:

INSERT INTO Player  
(PlayerName, RunScored,  WicketsTaken )
VALUES
('KL Rahul', 52, 0 ),
('Hardik Pandya', 30, 1 ),
('Ravindra Jadeja', 18, 2 ),
('Washington Sundar', 10, 1),
('D Chahar', 11, 2 ),  
('Mitchell Starc', 0, 3);

要验证使用以下命令如下。

SELECT  * from Player ;

输出 :

PLAYERIDPLAYERNAMERUNSCOREDWICKETSTAKEN
1KL Rahul520
2Hardik Pandya301
3Ravindra Jadeja182
4Washington Sundar101
5D Chahar112
6Mitchell Starc03

现在我们要找到 RunScored 列的样本标准偏差。

SELECT  STDDEV_SAMP(RunScored ) as Samp_Standard_Deviation  
FROM Player ;

输出 :

SAMP_STANDARD_DEVIATION
18.486932321687846

示例 2 :
现在我们要找到 WicketsTaken 列的样本标准差。

SELECT  STDDEV_SAMP(WicketsTaken) as Samp_Std_Dev_Wickets    
FROM Player ;

输出 :

SAMP_STD_DEV_WICKETS
1.0488088481701516

示例 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_IDEMPLOYEE_NAMEWORKING_ATWORK_LOCATIONJOINING_DATEANNUAL_INCOME
1Amit KhanXYZ DigitalKolkata2019-10-06350000
2Shreetama PalABC Corp.Kolkata2018-12-16500000
3Aniket SharmaPQR Soln.Delhi2020-01-11300000
4Maitree JanaXYZ DigitalKolkata2019-05-01400000
5Priyanka OjhaABC Corp.Delhi2019-02-13350000
6Sayani MitraXYZ DigitalKolkata2019-09-15320000
7Nitin DeyPQR Soln.Delhi2019-10-06250000
8Sujata SamantaPQR Soln.Kolkata2020-10-06350000
9Sudip MajhiABC Corp.Delhi2018-10-30600000
10Sanjoy KohliXYZ DigitalDelhi2019-04-18450000

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

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

输出 :

COMPANY_NAMESTDDEVOFANNUALINCOME
ABC Corp.125830.57392117917