跳到主要内容
翻译页面

本页面由 AI 辅助从英文翻译而来。如两者存在差异,以英文版本为准。

AVG

返回列或列分组中所有非 NULL 值的平均值。

另请参阅:
[SELECT]


语法​

SELECT AVG(columnExpression) FROM <multipartIdentifier>
[ GROUP BY groupByColumn ];

参数​

columnExpression
列或表达式。

无法表示为数值的字符串和 BLOB 值会被解释为 0。

columnExpression 中必须至少有一个值不为 NULL,否则返回 NULL。

groupByColumn
用于执行汇总或聚合操作的一列或多列。GROUP BY 子句为每个列分组返回一行。

返回值​

返回一个浮点值,表示 columnExpression 的平均值。


示例​

返回列表达式在整个资源上的平均值​

SELECT avg(json_array_length(disks)) as avg_disks
FROM google.compute.instances
WHERE project = 'stackql-demo'
AND zone = 'australia-southeast1-a';

返回按另一个列表达式分组的列表达式的平均值​

SELECT tags, avg(json_array_length(disks)) as avg_disks
FROM google.compute.instances
WHERE project = 'stackql-demo'
AND zone = 'australia-southeast1-a'
GROUP BY json_extract(tags, '$.instanceType');

将 AVG 用作窗口函数来计算移动平均值​

-- Calculate moving average of commit activity
WITH weekly_totals AS (
SELECT
week,
SUM(json_each.value) as commits_this_week
FROM github.repos.stats_commit_activity, JSON_EACH(days)
WHERE owner = 'stackql'
AND repo = 'stackql'
GROUP BY week
)
SELECT
week,
commits_this_week,
ROUND(AVG(commits_this_week) OVER (ORDER BY week ROWS BETWEEN 3 PRECEDING AND CURRENT ROW), 1) as four_week_moving_avg
FROM weekly_totals
ORDER BY week;

有关更多信息,请参阅 https://www.sqlite.org/lang_aggfunc.html#avg。