Как получить одну отдельную запись на IP-адрес в день? - PullRequest
1 голос
/ 29 февраля 2012

Мы пытаемся ограничить голосование одним IP-адресом в день для некоторых рок-видео.Я начал с этого запроса с другого вопроса о переполнении стека.Однако мне нужно только один голос в день, когда мне нужно один голос за IP-адрес в день.Как бы я это сделал, пожалуйста?

;with cte as
(
  select
    *,
    row_number() over(partition by datediff(d, 0, created) order by created desc) as rn 
  from rock_vote
)
select cte.VideoId, cte.IPAddress, o.BandName, cte.Created
from cte  
inner join rock_video o on cte.videoId = o.videoid
where rn = 1
order by created desc

1 Ответ

1 голос
/ 29 февраля 2012
;with cte as
(
  select
    *,
    row_number() over(partition by IPAddress, datediff(d, 0, created) 
    -------------------------------^^^^^^^^^^^
    order by created desc) as rn 
  from rock_vote
)
select cte.VideoId, cte.IPAddress, o.BandName, cte.Created
from cte  
inner join rock_video AS o on cte.videoId = o.videoid
where cte.rn = 1
order by o.created desc;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...