在oracle中按要求统计行数,怎么运用sum和count函数?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在oracle中按要求统计行数,怎么运用sum和count函数?相关的知识,希望对你有一定的参考价值。

日期
2010-7-15
2010-7-15
2010-7-16
2010-7-17
执行后的结果是:
日期: 条数
2010-7-15 2
2010-7-16 1
2010-7-17 1

1、首先在oracle中avg函数,使用聚合函数在计算平均值时,会报空值排除在外。

2、刚才在计算的时候结果是550,而comm列的总各为2200 所以计算平均时是只计算了除了空值的行。

3、需要注意的是,avg函数不能单独使用在where条件中不然会报如下错误。

4、如果想要查询出大于平均值的结果,需要使用group by ...having 子句。

5、然后用count函数用来统计列的总行数,就完成了。

参考技术A

在oracle中,sum一般用于统计某列的和,count用于统计行数。

工具:oracle 10g

步骤:

1、oracle中emp表有如下数据:

2、要求按deptno字段统计每个deptno下有多少行数据,可用如下语句:

select deptno,count(*) from emp group by deptno;

3、查询结果:

4、要求按deptno字段统计每个deptno下的sal的和是多少,可用如下语句:

select deptno,sum(sal) from emp group by deptno;

5、查询结果:

其中:sum、count等在oracle中叫聚合函数,聚合函数对一组值执行计算并返回单一的值。除了 count以外,聚合函数忽略空值。聚合函数经常与 select语句的group by子句一同使用。

参考技术B 如果按某些字段统计行数,而这些字段有变化,用sum 和 decode 函数比较好吧 参考技术C group by试试追问

我知道用group by和count 但不知道怎么实现

追答

SYSDBA@TEST> create table t1(c1 int);
CREATE TABLE
SYSDBA@TEST> insert into t1 values(1);
INSERT 1 0
SYSDBA@TEST> insert into t1 values(1);
INSERT 1 0
SYSDBA@TEST> insert into t1 values(2);
INSERT 1 0
SYSDBA@TEST> insert into t1 values(2);
INSERT 1 0
SYSDBA@TEST> insert into t1 values(2);
INSERT 1 0
SYSDBA@TEST> insert into t1 values(3);
INSERT 1 0
SYSDBA@TEST> select c1, count(*) from t1 group by c1 order by c1;;
C1 | COUNT
----+-------
1 | 2
2 | 3
3 | 1
(3 行)

你是这个意思吧

追问

我再试试 等等看有没更好答案 谢了

追答

select c1, count(*) from t1 group by c1 order by c1
这条语句不是已经满足你的要求了吗?你觉得还有什么问题?

本回答被提问者采纳

oracle查询表统计行数与注释

SELECT TABLE_NAME,NUM_ROWS,(select COMMENTS from user_tab_comments WHERE TABLE_NAME=C.TABLE_NAME) FROM user_tables C
WHERE NUM_ROWS>0

 

查询表统计行数与注释


以上是关于在oracle中按要求统计行数,怎么运用sum和count函数?的主要内容,如果未能解决你的问题,请参考以下文章

读取程序字符,行数,单词的个人程序

oracle查询表统计行数与注释

[MySQL]子语句的查询技巧

在PLSQL中怎么能取到表中按ID降序排列的前十条记录???

软件工程个人第二小项目——wc

oracle分析函数汇总