查询就像24小时限制查询中的Stackoverflow 5个问题一样?

时间:2012-01-03 07:58:58

标签: sql-server-2005 tsql

表TblQuestions:

UserId     time    
------------------
1           1-1-2012 10:14
1           1-2-2012 11:15
1           1-3-2012 12:18
1           1-14-2012 13:15
1           1-16-2012 14:14
2           1-16-2012 10:15
2           1-16-2012 10:15
...
...

我想构建一个查询,检查用户是否已经在24小时间隔内发布了5个问题。

就像stackoverflow一样。

我需要一个有效的查询(通过userId),它返回“允许”或“禁用”类位字段......

P.S。

如果查询在24小时间隔内已找到超过5个问题 - 请勿继续扫描 - 只需返回 - “禁用”....

1 个答案:

答案 0 :(得分:5)

如果您要求任意间隔,但从现在开始过去24小时,那么:

IF (
     SELECT COUNT(*) 
     FROM YOURTABLE 
     WHERE 
         UserId = @UserId 
     AND [time] >= DATEADD(day, -1, GETDATE())
   ) > 5
  SELECT 'disAllow'
ELSE
  SELECT 'Allow'