0

对不起,我想不出更好的标题。

我有一个表,每次有人点击我的 JSON api 时都会插入一行。本质上,它有 2 列,Ipaddress( nvarchar) 和date( datetimeoffset)。

我的部分问题是,我不确定如何定义我想要的数据,但总的来说,我试图弄清楚是否有人在我的 api 上玩恶作剧。

我认为我正在寻找的是每个 IP 地址每秒/分钟的平均请求数。

谁能帮我写一个这样的查询?

4

1 回答 1

0

To see today, by IP, per minute:

DECLARE @day DATE = CURRENT_TIMESTAMP;

WITH x AS (
  SELECT Ipaddress, m = DATEADD(MINUTE, DATEDIFF(MINUTE, @day, [date]), @day)
  FROM dbo.tablename
  WHERE CONVERT(DATE, [date]) = @day
)
SELECT Ipaddress, m, c = COUNT(*)
  FROM x 
  GROUP BY Ipaddress m
  ORDER BY c DESC; -- OR ORDER BY m

You could further derive averages from that data and filter depending on what you consider to be indicative of "shenanigans"...

于 2013-01-21T22:19:10.077 回答