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

Roy*_*mir 3 t-sql sql-server-2005

表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
...
...
Run Code Online (Sandbox Code Playgroud)

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

就像stackoverflow一样.

我需要一个有效的查询(通过userId)返回我"允许"或"disAllow"类位字段...

PS

如果查询已经在24小时间隔内找到了超过5个问题 - 不要继续扫描 - 只需返回 - "禁用"....

Ole*_*Dok 5

如果你从现在起24小时内没有任意间隔,那么:

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