oldwain随便写 http://oldwain.itpub.net/ <a href="http://oldwain.itpub.net">oldwain随便写</a>

用oracle分析itpub徽章(2) -- 分析数据

上一篇 / 下一篇  2006-09-12 00:00:00 / 个人分类:Oracle

有了数据,进行分析就比较容易了。我们可以分析每个品种的最大持有人、前n大持有人等信息。

ITPUB个人空间!c @.l7A&eq2X-w

我们可以先得到一个每个品种每个人当前持有的数目:

select item, username, count(*) cnt, count(*)/(select count(*) from medals where item = a.item)*100 ratio
from medals a
where snaptime = (select max(snaptime) from medals where item = a.item)
group by a.item, username 
order by item, count(*) desc 
/
1742 505 ITPUB拍卖行 17 4.7887323943662
1743 505 多少年来 15 4.22535211267606
1744 505 水鬼 14 3.94366197183099
1745 505 Great.Z 12 3.38028169014085
1746 505 月明 11 3.09859154929577
.......

然后,以上面的结果为基础,可以进行进一步的查询, 比如可以查询每个品种的最大持有人, 以及他持有的数量和占总数的比例:

column ratio format 99.99
column username format a20
column medalname format a20
with v as (select item, username, count(*) cnt, count(*)/(select count(*) from medals where item = a.item)*100 ratio
from medals a
where snaptime = (select max(snaptime) from medals where item = a.item)
group by a.item, username 
order by item, count(*) desc 
)
select n.medalname, username, cnt, ratio 
from v vo, medalname n
where vo.item = n.medalid
and n.medalclass = 'animals'
and cnt = (select max(cnt) from v where item=vo.item ) 
MEDALNAME USERNAME CNT RATIO
-------------------- -------------------- ---------- ------
鼠 ITPUB拍卖行 17 4.79
牛 binss 66 18.59
虎 多少年来 30 8.52
兔 ITPUB拍卖行 21 5.93
龙 flashcopy 14 3.95
蛇 ITPUB拍卖行 21 5.93
马 ITPUB拍卖行 21 5.93
羊 ITPUB拍卖行 22 6.21
猴 oldwain 35 9.92
鸡 多少年来 13 3.67
狗 多少年来 14 3.93
MEDALNAME USERNAME CNT RATIO
-------------------- -------------------- ---------- ------
猪 ITPUB拍卖行 20 5.70
已选择12行。

我们还可以选择查询每个品种的前n位持有人的持有情况:

break on medalname
compute sum of cnt on medalname
compute sum of ratio on medalname
column ratio format 99.99
column username format a20
column medalname format a20
with v as (select item, username, count(*) cnt, count(*)/(select count(*) from medals where item = a.item)*100 ratio
from medals a
where snaptime = (select max(snaptime) from medals where item = a.item)
group by a.item, username 
order by item, count(*) desc 
)
select n.medalname, username, cnt, ratio 
from v vo, medalname n
where vo.item = n.medalid
and n.medalclass = 'animals'
and (select count(*) from v where item=vo.item and cnt>vo.cnt ) < 3 
MEDALNAME            USERNAME                    CNT  RATIO
-------------------- -------------------- ---------- ------
鼠                   ITPUB拍卖行                  17   4.79
                     多少年来                     15   4.23
                     水鬼                         14   3.94
********************                      ---------- ------
sum                                               46  12.96
牛                   binss                        66  18.59
                     Great.Z                      12   3.38
                     tang2049                     12   3.38
********************                      ---------- ------
sum                                               90  25.35
虎                   多少年来                     30   8.52
                     ITPUB拍卖行                  15   4.26
                     Great.Z                      12   3.41
********************                      ---------- ------
sum                                               57  16.19
兔                   ITPUB拍卖行                  21   5.93
                     多少年来                     14   3.95
                     Great.Z                      12   3.39
********************                      ---------- ------
sum                                               47  13.28
龙                   flashcopy                    14   3.95
                     月明                         12   3.39
                     lodge                        12   3.39
                     Great.Z                      12   3.39
********************                      ---------- ------
sum                                               50  14.12
蛇                   ITPUB拍卖行                  21   5.93
                     Great.Z                      12   3.39
                     月明                         10   2.82
                     bankit                       10   2.82
********************                      ---------- ------
sum                                               53  14.97
马                   ITPUB拍卖行                  21   5.93
                     Great.Z                      12   3.39
                     lodge                        11   3.11
********************                      ---------- ------
sum                                               44  12.43
羊                   ITPUB拍卖行                  22   6.21
                     lodge                        18   5.08
                     月明                         13   3.67
********************                      ---------- ------
sum                                               53  14.97
猴                   oldwain                      35   9.92
                     Great.Z                      12   3.40
                     醉眼看世界                   12   3.40
********************                      ---------- ------
sum                                               59  16.71
鸡                   多少年来                     13   3.67
                     Great.Z                      12   3.39
                     vecentli                     12   3.39
********************                      ---------- ------
sum                                               37  10.45
狗                   多少年来                     14   3.93
                     wanggi                       12   3.37
                     Great.Z                      12   3.37
********************                      ---------- ------
sum                                               38  10.67
猪                   ITPUB拍卖行                  20   5.70
                     Great.Z                      12   3.42
                     月明                         10   2.85
********************                      ---------- ------
sum                                               42  11.97

已选择38行。

另外,当我们积攒了一定时期的数据后,还可以按照时间对数据的趋势进行进一步的分析,同时可以配合GUI程序进行图表分析。


TAG:

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2008-11-23  
      1
2345678
9101112131415
16171819202122
23242526272829
30      

数据统计

  • 访问量: 2741
  • 日志数: 1042
  • 建立时间: 2007-11-28
  • 更新时间: 2008-02-22

RSS订阅

Open Toolbar