WebProxyLog を解析する SQL 文を考えてみる

http://d.hatena.ne.jp/yamanyon/20060612#1150110866
これの続き。


端末に SQL Server Business Intelligence Development Studio なるものをインストール。レポート サーバー プロジェクトをがりがり作ってみることに。
データベースに接続して、解析データを作成してみる。

SELECT  month, SUM(bytesrecvds) AS RecvdBytes, SUM(bytessents) AS SentBytes, 
        COUNT(ClientIP) AS Client
FROM   (SELECT  '2006年6月' AS month, SUM(bytesrecvd) AS bytesrecvds, 
                SUM(bytessent) AS bytessents, ClientIP
        FROM    WebProxyLog
        WHERE  (logTime >= CONVERT(DATETIME, '2006-06-01 00:00:00', 102)) 
                AND (logTime < CONVERT(DATETIME, '2006-07-01 00:00:00', 
                102)) AND (resultcode = 200) AND (DestHostIP = 3533874324)
        GROUP BY ClientIP) AS monthData
GROUP BY month

こうすることで、6 月のデータ送受信サイズと IP 数が数えられる。
出力はこんな感じ。データはダミーというお約束で。

month     | RecvdBytes | SentBytes | Client
2006年6月 | 1050639    | 35216635  | 276

IP 数は純粋な IP の数なので、その月のユーザー数に置き換えるには無理がある。
ユーザー数を数えるには、やはり 1 時間以上アクセスが無かった IP を別物として扱う必要があるよなぁ。
別の DB 作らないと無理かなこれは。