MariaDB STD() 函数的基础用法与实例
MariaDB STD()
函数用来计算一组数值的标准差。
发布于
MariaDB STD()
函数用来计算一组数值的标准差。标准差是衡量数据分散程度的重要统计指标之一。
语法
MairaDB STD()
函数的语法如下:
STD(expr)
expr
是一个表达式,通常是一个字段名或者计算表达式。- 如果
expr
中包含 NULL 值,那么 NULL 值会被忽略。 - 函数返回该表达式所有非 NULL 值的标准差。
实例
计算一个数值字段的标准差
DROP TABLE IF EXISTS scores;
CREATE TABLE scores (
id INT PRIMARY KEY AUTO_INCREMENT,
score INT NOT NULL
);
INSERT INTO scores (score) VALUES
(80), (85), (90), (75), (92);
SELECT STD(score) AS std_score
FROM scores;
以下是该语句的输出:
+-----------+
| std_score |
+-----------+
| 6.2801 |
+-----------+
结果显示这组分数的标准差大约为 5.92。
计算多个字段相加后的标准差
DROP TABLE IF EXISTS student_records;
CREATE TABLE student_records (
id INT PRIMARY KEY AUTO_INCREMENT,
math_score INT NOT NULL,
physics_score INT NOT NULL,
chemistry_score INT NOT NULL
);
INSERT INTO student_records (math_score, physics_score, chemistry_score) VALUES
(80, 75, 88), (92, 87, 76), (67, 90, 82), (53, 81, 94);
SELECT STD(math_score + physics_score + chemistry_score) AS std_total
FROM student_records;
以下是该语句的输出:
+-----------+
| std_total |
+-----------+
| 9.6534 |
+-----------+
结果显示每个学生三门科目总分的标准差大约为 16.77。
计算带条件的标准差
DROP TABLE IF EXISTS product_sales;
CREATE TABLE product_sales (
id INT PRIMARY KEY AUTO_INCREMENT,
product VARCHAR(30) NOT NULL,
amount INT NOT NULL
);
INSERT INTO product_sales (product, amount) VALUES
('Product A', 100), ('Product B', 120), ('Product A', 80),
('Product C', 90), ('Product B', 150), ('Product A', 110);
SELECT STD(amount) AS std_amount
FROM product_sales
WHERE product = 'Product A';
以下是该语句的输出:
+------------+
| std_amount |
+------------+
| 12.4722 |
+------------+
结果显示 ‘Product A’ 销售金额的标准差大约为 15.28。
分组后计算标准差
DROP TABLE IF EXISTS company_salaries;
CREATE TABLE company_salaries (
id INT PRIMARY KEY AUTO_INCREMENT,
department VARCHAR(20) NOT NULL,
salary INT NOT NULL
);
INSERT INTO company_salaries (department, salary) VALUES
('Sales', 5000), ('Sales', 6000), ('Sales', 5500),
('Marketing', 6500), ('Marketing', 5800), ('Marketing', 6200),
('IT', 7000), ('IT', 6800), ('IT', 7200);
SELECT department, STD(salary) AS std_salary
FROM company_salaries
GROUP BY department;
以下是该语句的输出:
+------------+------------+
| department | std_salary |
+------------+------------+
| IT | 163.2993 |
| Marketing | 286.7442 |
| Sales | 408.2483 |
+------------+------------+
结果显示了不同部门薪资的标准差。
计算多列数据的组合标准差
DROP TABLE IF EXISTS product_dimensions;
CREATE TABLE product_dimensions (
id INT PRIMARY KEY AUTO_INCREMENT,
product VARCHAR(30) NOT NULL,
length INT NOT NULL,
width INT NOT NULL,
height INT NOT NULL
);
INSERT INTO product_dimensions (product, length, width, height) VALUES
('Product X', 10, 5, 8), ('Product Y', 12, 6, 10),
('Product Z', 8, 4, 6), ('Product X', 11, 5, 7);
SELECT product, STD(length * width * height) AS std_volume
FROM product_dimensions
GROUP BY product;
以下是该语句的输出:
+-----------+------------+
| product | std_volume |
+-----------+------------+
| Product X | 7.5000 |
| Product Y | 0.0000 |
| Product Z | 0.0000 |
+-----------+------------+
结果显示了 ‘Product X’ 体积的标准差大约为 7.07,而其他产品由于只有一个维度数据,所以标准差为 0。
相关函数
以下是几个与 MairaDB STD()
相关的几个函数:
- MariaDB
AVG()
函数用来计算数值平均值。 - MariaDB
SUM()
函数用来计算数值总和。 - MariaDB
VAR_POP()
函数用来计算整体数据的方差。 - MariaDB
VAR_SAMP()
函数用来计算样本数据的方差。 - MariaDB
STDDEV_POP()
函数用来计算整体数据的标准差。
结论
MariaDB STD()
函数是一个非常有用的统计函数,可以方便地计算数值字段的标准差。通过本文提供的示例,相信您已经对该函数有了全面的理解。在处理统计数据时,STD()
函数将是您的得力助手。