Oracle里怎么快速搞定一列数据的统计,别复杂就想知道简单方法
- 问答
- 2026-01-04 09:30:53
- 12
想在Oracle里快速搞定一列数据的统计,最直接、最不费脑子的方法就是使用SQL的聚合函数,你根本不需要去记那些复杂的概念,就想知道怎么敲几个简单的命令出结果,那下面的内容就是为你准备的。
核心思路就一句话:用SELECT语句,配上几个固定的“统计词”,从你的表里把数据捞出来。
想象一下,你有一个表格,比如叫“员工表”,里面有一列叫“工资”,你现在想知道所有员工的工资总和、平均工资、最高工资、最低工资等等,该怎么做?
第一步:打开你的SQL工具 不管你用的是SQL*Plus、SQL Developer、Toad还是其他任何能连接Oracle数据库的工具,首先确保你已经连上了数据库,并且能对你要统计的那张表进行操作。
第二步:写出最基本的统计语句 这里有几个最常用、也最实用的“统计词”(正式名称叫聚合函数):
-
COUNT:数一数这列总共有多少条记录,公司总共有多少名员工。
- 简单用法:
SELECT COUNT(工资列名) FROM 员工表名; - 注意:如果工资这一栏有些人是空值(没填),COUNT(工资列名)就不会算这些人,如果你想统计总人数,不管工资填没填,可以用
COUNT(*),意思是数一数总共有多少行。
- 简单用法:
-
SUM:把这一列所有的数字加起来,计算公司每个月要发多少工资总额。
- 简单用法:
SELECT SUM(工资列名) FROM 员工表名;
- 简单用法:
-
AVG:计算这一列数字的平均值,员工的平均工资是多少。
- 简单用法:
SELECT AVG(工资列名) FROM 员工表名; - 提醒:AVG函数会自动忽略掉空值(NULL),比如10个人,1个人工资没录,它是用9个人的工资总和除以9,而不是除以10。
- 简单用法:
-
MAX:找出这一列里最大的那个数,公司里谁的工资最高,是多少。
- 简单用法:
SELECT MAX(工资列名) FROM 员工表名;
- 简单用法:
-
MIN:找出这一列里最小的那个数,公司里最低的工资是多少。
- 简单用法:
SELECT MIN(工资列名) FROM 员工表名;
- 简单用法:
第三步:组合使用,一次搞定 你完全没必要为了这五个数字写五条SQL语句,那样太麻烦了,Oracle允许你把它们全都放在一条语句里,一次执行,结果一起出来,这是最快的方法。

完整的示例语句长这样:
SELECT
COUNT(工资) as 员工人数,
SUM(工资) as 工资总额,
AVG(工资) as 平均工资,
MAX(工资) as 最高工资,
MIN(工资) as 最低工资
FROM 员工表;
把上面的“工资”换成你的实际列名,把“员工表”换成你的实际表名,然后运行一下。
运行后你会看到什么? 结果会以表格的形式出现,只有一行,有五列,每一列的表头就是你写的“员工人数”、“工资总额”这些(as后面的东西,是给这列结果起个易懂的别名),这样,所有基本的统计信息就一目了然了。
如果你想稍微深入一点点:分组统计
上面说的是对整张表的所有数据进行统计,但有时候你的需求会更细一点,你的“员工表”里还有一列叫“部门”,你想知道每个部门的工资统计情况,而不是全公司混在一起。
这时候,就要请出另一个关键字:GROUP BY,它的作用就是“按什么分组”。

示例语句:
SELECT
部门名,
COUNT(工资) as 部门人数,
AVG(工资) as 部门平均工资,
MAX(工资) as 部门最高工资
FROM 员工表
GROUP BY 部门名;
这条语句的意思就是:先按照“部门名”这一列把员工分组(比如分成销售部、技术部、财务部),然后分别对每个组进行COUNT、AVG、MAX计算。
运行后,结果就不是一行了,而是每个部门都会有一行统计结果,这样你就能清晰地对比不同部门的情况。
最后几个小贴士,让你用得更顺手:
- 处理小数点:AVG函数算出来的平均工资可能小数点后面很长一串,看起来烦,你可以用
ROUND函数把它四舍五入一下。ROUND(AVG(工资), 2)就是保留两位小数。 - 加上条件:如果你只想统计工资超过10000元的员工,或者只想统计销售部的情况,你可以在语句里加上
WHERE条件。SELECT AVG(工资) FROM 员工表 WHERE 部门名 = '销售部';
WHERE子句要放在FROM表名之后,GROUP BY之前。 - 空值问题:再强调一下,COUNT(列名)不统计NULL,AVG、SUM、MAX、MIN也都会忽略NULL,这一点心里要有数。
最快的方法就是一条SELECT语句,结合COUNT、SUM、AVG、MAX、MIN这几个函数,需要分组就看情况加个GROUP BY,这套组合拳打出来,日常工作中百分之八九十的单一列统计需求都能瞬间解决,根本不用去想复杂的东西。
(根据Oracle官方文档中关于SQL聚合函数的基础概念和用法进行说明)
本文由瞿欣合于2026-01-04发表在笙亿网络策划,如有疑问,请联系我们。
本文链接:https://www.haoid.cn/wenda/74246.html
