表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个问题 - 请勿继续扫描 - 只需返回 - “禁用”....
答案 0 :(得分:5)
如果您要求不任意间隔,但从现在开始过去24小时,那么:
IF (
SELECT COUNT(*)
FROM YOURTABLE
WHERE
UserId = @UserId
AND [time] >= DATEADD(day, -1, GETDATE())
) > 5
SELECT 'disAllow'
ELSE
SELECT 'Allow'