我在Oracle 10g上。 我有一張表,其中包含過去一年中存儲在系統中的所有文件。 我想統計每月存款,按文件大小對它們進行分組。例如Oracle 10g:按文件大小分組的每月統計信息
0-1m
1m-10m
10m-100m
100m +
所以我的結果會是什麼樣子:
Month, 0-1m, 1m-10m, 10m-100m, 100mplus
2009-03, 999, 999, 999, 999
我想用Oracle的解析函數,但他們不熟悉我。
您的幫助將不勝感激。
更新: 我有這個疑問,給了我一個平坦的列表。
select mois, groupement, count(*) nb
from
(
select to_char(vercdate,'YYYY-MM') mois,
case
when datasize > 1024*1024*1024 then 'Go'
when datasize > 1024*1024*100 then '100Mo'
when datasize > 1024*1024*10 then '10Mo'
when datasize > 1024*1024 then '1Mo'
else '0Mo'
end groupement
from table
where lower(filetype) = 'pdf'
)
where groupement <> '0Mo'
GROUP by mois, groupement
這給類似:
2007-08 1Mo 745
2007-08 10Mo 48
2007-09 1Mo 973
2007-09 10Mo 175
2007-09 100Mo 1
2007-10 1Mo 913
2007-10 10Mo 64
2007-11 1Mo 828
2007-11 10Mo 71
2007-12 1Mo 456
2007-12 10Mo 24
2007-12 100Mo 1
2008-01 1Mo 693
現在我必須作出分析部。
感謝的是,我從來沒有見過「WITH blah AS」或EXTRACT功能。 – darreljnz 2009-10-18 03:05:01
WITH語法在Oracle中稱爲子查詢因子分解,並且在Oracle 9i +中受支持。 – 2009-10-18 03:21:37