ITPub博客

首页 > 数据库 > 国内数据库 > YashanDB AVG函数

YashanDB AVG函数

国内数据库 作者:崖山数据库系统YashanDB 时间:2025-04-09 18:27:52 0 删除 编辑

AVG函数计算给定参数的平均值,返回值的类型有以下几种情况:

参数类型 返回值
TINYINT、SMALLINT、INT、BIGINT、NUMBER NUMBER
FLOAT FLOAT
DOUBLE DOUBLE
CHAR NUMBER
VARCHAR NUMBER
NCHAR NUMBER
NVARCHAR NUMBER

其中 expr的值为数值型,或可以转换为NUMBER类型的字符型(转换失败返回Invalid number错误)。对于其他类型,函数返回类型不支持。

在单行计算中,当expr的值为NULL时,函数返回NULL。

在多行计算中,函数将忽略expr值为空的行,当所有行均为空时,计算结果为NULL。

聚集函数不可嵌套,因此expr为除聚集函数之外的其他通用表达式。

DISTINCT

表示在计算平均值时,过滤掉重复的行。

ALL

默认值,表示对所有行计算平均值。

示例

-- area1表中包含如下字段和数据SELECT area_no,area_name,DHQ,employee_count FROM area1;AREA_NO AREA_NAME            DHQ             EMPLOYEE_COUNT------- -------------------- --------------- --------------01      华东               Shanghai                      
02      华西               Chengdu                    30003      华南               Guangzhou                  40004      华北               Beijing                    30005      华中               Wuhan                           
  
-- 计算平均员工数,员工数为空的行在计算时被忽略SELECT AVG(employee_count) res FROM area1;
                RES-------------------
         333.333333
  -- 计算平均员工数(过滤掉重复值),员工数为空的行在计算时被忽略SELECT AVG(DISTINCT employee_count) res FROM area1;
                 RES--------------------
                 350
Copied!

OVER

当指定OVER关键字时,AVG将作为 窗口函数,并支持滑动窗口,返回多行的平均值。

analytic_clause

窗口函数通用语法,详情请查阅 窗口函数。

示例

--finance_info表记录了分年、月、机构的收入情况SELECT year,month,branch,revenue_total FROM finance_info;YEAR  MONTH BRANCH REVENUE_TOTAL 
----- ----- ------ ------------- 2001  01    0201            28882021  01    0201           288882021  01    0101           388882021  02    0101           37778SELECT year,month,revenue_total curr,AVG(revenue_total) OVER (PARTITION BY year ORDER BY month ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) tonowFROM finance_info;YEAR  MONTH        CURR       TONOW 
----- ----- ----------- ----------- 2001  01           2888        28882021  01          28888       288882021  01          38888       338882021  02          37778  35184.6667--分年统计每月所有机构的平均收入,及年初至今所有机构的平均收入SELECT year,month,AVG(revenue_total) curr,AVG(AVG(revenue_total)) OVER (PARTITION BY year ORDER BY month ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) tonowFROM finance_infoGROUP BY year,month;YEAR  MONTH        CURR       TONOW 
----- ----- ----------- ----------- 2001  01           2888        28882021  01          33888       338882021  02          37778       35833


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70028812/viewspace-3080376/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: YashanDB BIN函数
下一篇: YashanDB ATAN2函数
请登录后发表评论 登录
全部评论
崖山数据库系统YashanDB是深圳计算科学研究院完全自主研发设计的新型数据库系统,融入原创理论,支持单机/主备、共享集群、分布式等多种部署方式,覆盖OLTP/HTAP/OLAP交易和分析混合负载场景,为客户提供一站式的企业级融合数据管理解决方案。

注册时间:2023-04-11

  • 博文量
    722
  • 访问量
    639898