0
어떻게 SO 's Popularity 알고리즘을 MySQL에 작성하겠습니까?MySQL의 StackOverflow의 인기 알고리즘
알고리즘에 대한 자세한 내용은 Popularity algorithm입니다.
감사합니다.
어떻게 SO 's Popularity 알고리즘을 MySQL에 작성하겠습니까?MySQL의 StackOverflow의 인기 알고리즘
알고리즘에 대한 자세한 내용은 Popularity algorithm입니다.
감사합니다.
비교적 간단합니다.
t = (time of entry post) - (Dec 8, 2005)
당신은 당신에게 비교의 나머지 부분에서 사용할 수있는 정수를 제공하는 (당신이 unix_timestamp
을 사용할 수 있습니다) 타임 스탬프로 날짜 값을 변환합니다.
x = upvotes - downvotes
이 것은 꽤 쉬워야합니다. 분명히 MySQL은 빼기를 지원합니다.
y = {1 if x > 0, 0 if x = 0, -1 if x < 0)
z = {1 if x < 0, otherwise x}
이러한 경우에는 MySQL의 case
문을 살펴보십시오.
log(z) + (y * t)/45000
MySQL은 log
함수를 가지고 있으므로이 값은 간단하고 간단한 수학이어야합니다.
그리고 모두 select
문과 함께 묶습니다. user-defined variables을 사용하여 select
문에 중간 계산을 저장할 수 있습니다. 예 :
select @x := (upvotes - downvotes) as x,
(@x > 4) as isXGreaterThanFour
어떻게 'x'(upvotes-downvotes)를 CASE 문에 사용합니까? –
중간 계산에 변수를 사용하는 방법에 대한 예제를 추가했습니다. –
전체적으로이 코드를 작성할 수 있습니까? 나는 아직도 여기 혼란 스럽다. –