SQLAVG函数怎么计算平均值_SQLAVG函数求平均值教程

上周 下面我给大家介绍一下AVG的功能。

该函数计算平均值。
语法很简单:AVG(列名)。

有一个功能,请验证一下。
它会自动忽略 NULL 值。
例如,如果有 1 0 条数据,其中 2 条为 NULL。
然后它只计算8 个非NULL数据的平均值。

默认情况下不会删除重复值。
所有非NULL值都包含在计算中。
如果输入字符串怎么办? 将会报告错误。

我会给你一些例子。

最基本的使用。
例如,您的销售表。
想要平衡所有销售。
只需写: sql SELECT AVG(金额) AS 平均销售额 来自销售; 这已经出来了。

想要过滤吗? 例如,仅计算产品P001 的平均销售额。
使用 WHERE 子句。
sql 选择 AVG(总计)作为 P001 的平均销售额 来自销售 其中产品 ID = 'P001 '; 这只计算P001
稍微复杂一点。
我想按类别对它们进行分组。
例如,每个产品类别的平均销售额。
使用分组依据。
sql 选择类别,AVG(总计)AS AverageSalesPerCategory 来自销售 按类别分组; 这样您就可以看到每个类别的表现。

想要过滤累积的结果? 使用“拥有”。
例如,只看平均销售额超过1 000的品类。
sql 选择类别,AVG(总计)AS AverageSalesPerCategory 来自销售 按类别分组 平均得分(总计)> 1 000; 请注意 WHERE 和 HAVING 之间的区别。
收集前在哪里进行过滤。
收集后进行过滤。

还有一个技巧。
想要平均唯一值吗? 例如,班级分数加倍。
使用 DISTINCT。
sql 选择 AVG(DISTINCT 分数) AS AverageUniqueScore 来自学生成绩; 重复标记仅计算一次。

处理 NULL 值时要小心。
AVG 函数完全忽略 NULL。
例如,数据为 1 0、2 0、NULL、4 0、5 0。
它只是计算(1 0+2 0+4 0+5 0)/4 =3 0。
这是符合逻辑的,未知数不参与计算。

默认计算重复值。
想要消除重复项吗? 显式添加 DISTINCT。
比较一下: sql -
包含重复值 SELECT AVG(Score) FROM StudentScores;
-
平方后计算 从 StudentScores 中选择 AVG(DISTINCT 分数); 第二个仅算作一个独特的分数。

使用此功能的效率建议。
1 .一定要传递数字类型,不要传递字符串。
2 、条件过滤首选WHERE。
3 . 选择具有业务意义的GROUP BY 字段。
4 . 不要混淆HAVING和WHERE。
5 .谨慎使用DISTINCT,重复数据删除可能会更慢。

总之这个功能非常实用。
组合 WHERE、GROUP BY 和 DISTINCT 可以做很多事情。
它可以用于从全球统计到本地分析。
你尝试后就知道了。
算了吧,你想。

SQL 数值函数如何计算累计和与平均值?

哦,说到 SQL 中的窗口函数,它们非常简洁,尤其是在计算累积和和平均值时。
说实话,刚开始尝试的时候我很困惑,但是现在我可以顺利使用了。

首先,您需要知道计算运行总和主要依赖于 SUM() 窗口函数,并且可以使用 OVER() 子句来完成。
例如,如果要按日期排序并逐行累加,则将排序名称写在ORDERBY后面。

例如,如果要计算销售表中每个产品的每日累计收入,则需要编写: SELECT date, Product,Revenue, SUM(revenue) OVER (PARTITION BY Product ORDER BY date) AS running_total FROM sales;这将在每行数据旁边显示一列额外的累计收入。

另外,如果要按用户或部门等组进行计算,请在 OVER() 子句中添加 PARTITION BY 用户 ID 或部门 ID,然后添加 ORDER BY 日期。
这样,每组的数据就按照日期顺序逐行累加。

对于移动平均线,您需要使用AVG()窗口函数。
与 SUM() 一样,它也必须与 OVER() 子句一起使用。
例如,如果要计算从第一行到当前行的平均值,则在 ORDERBY 后面写入时间戳,并添加 ROWS UNBOUNDEDPRECEDING。

再举一个例子,如果要计算最后三行的平均值,请使用 ROWS BETWEEN 2 PRECEDING AND CURRENT ROW。
这允许您获取当前行和前两行的平均值。

重要的一点是,在 OVER() 子句中,ORDERBY 控制累积或滑动方向,而 PARTITIONBY 是针对每个组独立计算的。
ROWS 定义计算范围,UNBOUNDEDPRECEDING 从头开始​​计算,BETWEEN N PRECEDING AND CURRENT ROW 指定要包含的行数。

还有很多实际的应用场景,比如金融分析、时间序列数据分析、用户行为统计等。
这些窗口函数允许您高效地处理复杂的累积和滑动计算,同时保留原始数据行。

当时我不明白为什么这个窗口功能这么强大,现在却这么好用。
当你在工作中遇到此类问题时,可以尝试一下。
也许我们可以解决一个大问题。