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
查询表统计行数与注释
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
这条语句不是已经满足你的要求了吗?你觉得还有什么问题?
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函数?的主要内容,如果未能解决你的问题,请参考以下文章