在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
最新回答
茶丸软卷

2024-10-17 11:14:10

1、首先在oracle中avg函数,使用

聚合函数
在计算
平均值
时,会报空值排除在外。

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

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

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

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

毁灭自我

2024-10-17 11:59:53

在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子句一同使用。

霊感

2024-10-17 11:17:39

如果按某些字段统计行数,而这些字段有变化,用sum 和 decode 函数比较好吧
赶花期

2024-10-17 10:26:01

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
这条语句不是已经满足你的要求了吗?你觉得还有什么问题?