1. oracle 查询度量下每一列占合计的比重
select company,period,item,A*100/sum(A) over() from tab a;
这个是每个占所有公司的占比,如果要针对每个公司的占比,可以如下;
select company,period,item,A*100/sum(A) over(partition by company) from tab a;
2. oracle 合计行占比如何计算
提一个不太好的办法,计算的时候可以用case when分支将合计行提出来单独计算。
比如case when md5_at=男 and md7_at like '%合计' then dh_c_stylename/(select dh_c_stylename from table where md5_at='男合计') else dh_c_sty_zb(原来的dh_c_sty_zb的计算方式)end
类似上面的做法,不过负载有些大,而且我不知道你的合计和占比是不是一起计算的,如果是,那么可能就要麻烦很多,个人建议可以用参数来计算这样会省些事情。比如将男合计先计算出来,然后转为一个参数,然后再计算合计的时候直接用,这样能省下很多事情。
3. oracle 合计行占比如何计算
sql">不太理解你的想法,可以参考
SELECTMD6_AT,MD7_AT,
RATIO_TO_REPORT(HJ)OVER(partitionbyMD6_AT)占比
FROM(
SELECTMD6_AT,MD7_AT,SUM(dh_c_stylename)ASHJ
FROMTABLE
GROUPBYMD6_AT,MD7_AT
)
4. 怎么查看oracle数据库数据量大小
查看方法:
1、查看所有表空间及表空间大小:
select tablespace_name ,sum(bytes) / 1024 / 1024 as MBfrom dba_data_files group by tablespace_name;
2、查看所有表空间对应的数据文件:
select tablespace_name,file_name from dba_data_files;
3、修改数据文件大小:
alter database datafile 'H:ORACLEPRODUCT10.1.0ORADATAORACLEUSERS01.DBF' RESIZE 10240M;
(4)oracle数据库统计数据占比扩展阅读
每张表都是作为“段”来存储的,可以通过user_segments视图查看其相应信息。
段(segments)的定义:如果创建一个堆组织表,则该表就是一个段。
sql:SELECT segment_name AS TABLENAME,BYTES FROM user_segments WHERE segment_name='表名'。
解释:
segment_name 就是要查询的表名(大写),BYTES 为表存储所占用的字节数。本sql的意思就是查询出表名和表所占的存储空间大小。
5. 怎么查看oracle数据库数据量大小
现有数据量的大小,可以通过
dba_segments表内的bytes字段,这个不是完全正确, 不过基本来说还比较靠谱。
这个数据量是以字节为单位的。如果要查条数,那么就真的没有什么办法了,但是如果你每天都分析表,那么还可以在统计信息的表内查到,如果不是每天统计,那么基本就没有办法了。
6. 如何查看oracle数据库数据量
1、查看所有表空间及表空间大小:
select tablespace_name ,sum(bytes) / 1024 / 1024 as MBfrom dba_data_files group by tablespace_name;
2、查看所有表空间对应的数据文件:
select tablespace_name,file_name from dba_data_files;
3、修改数据文件大小:
alter database datafile 'H:\ORACLE\PRODUCT\10.1.0\ORADATA\ORACLE\USERS01.DBF' RESIZE 10240M;
7. oracle中如何求百分比
实现代码:
ELECT(CASEWHENdb_psndoc.age<=30THEN'30岁以上'
WHENdb_psndoc.age>30THEN'30岁及以下'END)
ranges,COUNT(*) rs ,100*round(COUNT(*)/SUM(COUNT(*))
OVER(),4)||'%'percentFROMbd_psnd
GROUPBYCASE
WHENbd_psndoc.age<=30then'30岁及以下'
WHENdb_psndoc.age<=30THEN'30岁以上'
(7)oracle数据库统计数据占比扩展阅读
sum(..) over(..)用法分析:
sum(…) over( ),对所有行求和;
sum(…) over( order by … ), 连续求和;
sum(…) over( partition by… ),同组内所行求和;
sum(…) over( partition by… order by … ),同第1点中的排序求和原理,只是范围限制在组内。
over不能单独使用,要和分析函数:rank(),dense_rank(),row_number(),sum()等一起使用。
over函数的参数:over(partition by columnname1 order by columnname2)
含义,按columname1指定的字段进行分组排序,或者说按字段columnname1的值进行分组排序。
例子:
select deptno,ename,sal,
sum(sal) over (partition by deptno order by ename) 部门连续求和,--各部门的薪水"连续"求和
sum(sal) over (partition by deptno) 部门总和, -- 部门统计的总和,同一部门总和不变
8. 怎么统计oracle数据库表的数据量
在oracle10g中统计所有表的数据量可以使用如下语句:
select sum(NUM_ROWS) from dba_tables where owner like 'SCHEMA';
说明一下,以上语句必须用dba账户登录才可以使用,其中的SCHEMA参数就是当前用户名。
chema为数据库对象的集合,为了区分各个集合,我们需要给这个集合起个名字,这些名字就是我们在企业管理器的方案下看到的许多类似用户名的节点,这些类似用户名的节点其实就是一个schema,schema里面包含了各种对象如tables, views, sequences, stored proceres, synonyms, indexes, clusters, and database links。
一个用户一般对应一个schema,该用户的schema名等于用户名,并作为该用户缺省schema。这也就是我们在企业管理器的方案下看到schema名都为数据库用户名的原因。
最简单的理解:以你计算机的用户为例,如果你的计算机有3个用户,那么每个用户登录系统看到的(使用的)功能是可以不相同的!
9. 跪求,Oracle在同一个表,每个数据占这个表总数的比例~!
建立一个视图,得到表数据的总数;然后用表各项数据去除视图的总数
10. oracle10g数据库中如何统计表的数据量
在oracle10g中统计所有表的数据量可以使用如下语句:
select
sum(NUM_ROWS)
from
dba_tables
where
owner
like
'SCHEMA';
说明一下,以上语句必须用dba账户登录才可以使用,其中的SCHEMA参数就是当前用户名。
chema为数据库对象的集合,为了区分各个集合,我们需要给这个集合起个名字,这些名字就是我们在企业管理器的方案下看到的许多类似用户名的节点,这些类似用户名的节点其实就是一个schema,schema里面包含了各种对象如tables,
views,
sequences,
stored
proceres,
synonyms,
indexes,
clusters,
and
database
links。
一个用户一般对应一个schema,该用户的schema名等于用户名,并作为该用户缺省schema。这也就是我们在企业管理器的方案下看到schema名都为数据库用户名的原因。
最简单的理解:以你计算机的用户为例,如果你的计算机有3个用户,那么每个用户登录系统看到的(使用的)功能是可以不相同的!