重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
1、首先在oracle中avg函数,使用聚合函数在计算平均值时,会报空值排除在外。
创新互联公司专注于企业网络营销推广、网站重做改版、甘南网站定制设计、自适应品牌网站建设、H5响应式网站、商城网站制作、集团公司官网建设、外贸网站制作、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为甘南等各大城市提供网站开发制作服务。
2、刚才在计算的时候结果是550,而comm列的总各为2200 所以计算平均时是只计算了除了空值的行。
3、需要注意的是,avg函数不能单独使用在where条件中不然会报如下错误。
4、如果想要查询出大于平均值的结果,需要使用group by ...having 子句。
5、然后用count函数用来统计列的总行数,就完成了。
在oracle10g中统计所有表的数据量可以使用如下语句:
select sum(NUM_ROWS) from dba_tables where owner like 'SCHEMA';
说明一下,以上语句必须用dba账户登录才可以使用,其中的SCHEMA参数就是当前用户名。
chema为数据库对象的集合,为了区分各个集合,我们需要给这个集合起个名字,这些名字就是我们在企业管理器的方案下看到的许多类似用户名的节点,这些类似用户名的节点其实就是一个schema,schema里面包含了各种对象如tables, views, sequences, stored procedures, synonyms, indexes, clusters, and database links。
一个用户一般对应一个schema,该用户的schema名等于用户名,并作为该用户缺省schema。这也就是我们在企业管理器的方案下看到schema名都为数据库用户名的原因。
最简单的理解:以你计算机的用户为例,如果你的计算机有3个用户,那么每个用户登录系统看到的(使用的)功能是可以不相同的!
如果是oracle9i版本,可以考虑如下两步实现:
(10g直接执行第二步就可以了)
统计一个用户下所有表的行数:
1.exec
dbms_stats.gather_schema_stats(owner='用户名');
2.select
sum(num_rows)
from
user_tables;
统计全库所有表的行数:
1.exec
dbms_stats.gather_database_stats(estimate_percent='30');
2.select
sum(num_rows)
from
dba_tables;
生产环境中需谨慎考虑收集新的统计信息后对应用产生的影响。
可以通过district来取出字段,之后通过count计算总数量。
sql:select count(district id) from tablename;
如果id字段没有空值的话,可以通过count统计字段的总数量(字段内容可能重复)。
sql:select count(id) from tablename;