数据库2字段统计平均值、AS、avg、round的结合用法

文章介绍了在Oracle数据库中处理大量数据时如何计算平均值,包括使用sum()和avg()函数,以及如何通过as设置别名和round()函数来控制小数位数。示例展示了统计商品平均价格和客户平均花费的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天遇到了一个关于数据库求平均值的问题,如果说很小的数据量还行,一旦遇到巨大的数据量真可要命。然后就不断去找资料解决了这个问题,现在总结一下,希望对也遇到类似问题的小伙伴会有帮助。

首先,一般的求平均值的方法大家都知道,无非就是利用avg函数,但是这只是针对一个字段中的值而言的,那如果针对两个字段该怎么统计出平均值呢。

我这边在Oracle数据库造了一些数据(仅供参考,可举一反三),表table1:

根据意思分别是购买者、商品名称、商品总消费、商品消费总价。(按照数据库语法来说,表名、字段名英文设计较为标准)

1、Sum()函数

例:统计铅笔的花销总价和钢笔的花销总价(在统计的时候需要思考想要得到的结果比较直观,避免出现字段误解的情况,可以在SQL的时候标明中文)

SELECT sum("item_total_price") AS 商品总价 ,sum("item_total") AS 商品总数量 FROM TABLE1

(执行结果如下)

2、统计铅笔和钢笔的平均价格,涉及到两个字段,不需要用到avg()函数:

(执行结果如下)

从上述两个例子可以看出,直接使用as即可清晰得看到想要得结果,在sql脚本中,as关键词作为别名,即给已经存在于数据库里的字段赋予了自己即时取的一个名称,那么通过运用as,可以一目了然地知道求得结果是什么。

那么在求出来得结果中,还是存在很多小数位的,那如何使它只保留2位小数呢?这就需要用到round()函数。

3、round()函数

round()函数作用是将数字四舍五入到指定地位数。语法:round(结束数,保留地小数位个数)。像下面的语句即是把平均价格控制显示两位小数:

(执行结果如下)

那如果是想统计购买铅笔的客户他们平均每个人花费了多少则需要用到avg()和round()函数的嵌套用法,即在round()函数内嵌套一个avg()函数即可把avg()得到的结果保留n位小数位。

(执行结果如下)

可以看到结果数保留2位小数。

Tips:

  1. 以上SQL执行均在Oracle数据库中运行成功,语句同时可在MySQL中运行,但需要注意把双引号去掉。

  1. Oracle表和字段存在大小写的区别,Oracle默认是大写,用双引号括起来的区分大小写,在创建数据库的时候navicat自动给我们创建的表和字段加上了双引号,如果没有,系统自动转成大写(那么执行语句的时候会出错哦)。

  1. MySQL不区分大小写。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值