1

過去30日間の一意のIPアドレスとIPレコードの合計を計算するMSSQLクエリを作成しました。

SELECT count(IPAddress) AS totalPageHits, count(DISTINCT IPAddress) AS totalVisitors, count(DateTime)
FROM recordTable
WHERE DateTime > GETDATE()-30

現在、1日の平均ページヒット数と1日の平均ユニークビジター数を計算するのに苦労しています。使用しようとしましAVGたが、「オペランドデータ型varcharはavg演算子に対して無効です」というエラーメッセージが表示されます。
どんな助けでも大歓迎です。

4

2 に答える 2

3
SELECT  AVG(HitCount) as AverageHits,
    AVG(UniqueHitCount) As AverageUniqueHits
FROM
(
SELECT  COUNT(IPAddress) as HitCount,
        COUNT(DISTINCT IPAddress) as UniqueHitCount,
        DATEDIFF(d, GETDATE(), DateTime) as Day
FROM tblHitCounter
WHERE DateTime > GETDATE() - 30
GROUP BY DATEDIFF(d, GETDATE(), DateTime)
) sub
于 2012-10-04T18:59:44.777 に答える
2

これを日ごとにグループ化してから、平均をとる必要があります。

select avg(totalPageHits) as avgDailyTotalPageHits,
       avg(totalVisitors) as avgDailyTotalVisitors
from (SELECT cast(DateTime as date) as thedate,
             count(IPAddress) AS totalPageHits,
             count(DISTINCT IPAddress) AS totalVisitors, count(DateTime) as cnt
      FROM recordTable
      WHERE DateTime > GETDATE()-30
      group by cast(DateTime as date)
     ) t
于 2012-10-04T18:46:10.903 に答える