【发布时间】:2009-10-15 19:28:40
【问题描述】:
我使用的是 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
现在我必须进行分析。
【问题讨论】:
标签: sql oracle plsql oracle10g