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個用戶,那麼每個用戶登錄系統看到的(使用的)功能是可以不相同的!