The default badge queries 토론을 이어갑니다:
위키 편집 10회(모든 게시글 합산)에 은 배지, 100회에 금 배지를 부여하는 배지를 만들려 합니다. 그런데 저나 Forum Helper 모두 진전을 이루지 못하고 있습니다.
제안이 있으신가요?
The default badge queries 토론을 이어갑니다:
위키 편집 10회(모든 게시글 합산)에 은 배지, 100회에 금 배지를 부여하는 배지를 만들려 합니다. 그런데 저나 Forum Helper 모두 진전을 이루지 못하고 있습니다.
제안이 있으신가요?
이러한 형식을 사용해 보았습니다. 배지를 '진행 중’에 부여할 때 잘못된 granted_at 날짜를 할당하는 MIN/MAX 문제를 피하기 위해서입니다. (이 방식은 배지가 도입되기 전에 이미 기준을 충족한 사람들이 없는 경우 더 잘 작동하는 경향이 있습니다.)
아래와 같은 것이 될 수 있습니다:
SELECT
user_id,
created_at granted_at
FROM (
SELECT
pr.user_id,
pr.created_at,
ROW_NUMBER() OVER (PARTITION BY pr.user_id ORDER BY pr.created_at) as row_number
FROM post_revisions pr
INNER JOIN badge_posts p ON p.id = pr.post_id
WHERE p.wiki = TRUE
AND pr.hidden = FALSE
AND pr.user_id > 0
) AS revisions
WHERE row_number = 100
(통상적인 ‘삭제된 주제나 게시물을 포함하지 않기’ 조건은 포함하지 않았습니다. 오래된 위키에 대한 편집은 여전히 집계되어야 하기 때문입니다. 백필(backfill)도 추가하지 않았지만, 이 경우 트리거가 '일일 업데이트’가 되어야 한다고 생각합니다.)
좋네요! 위키 게시물 100개를 넘나들며 100회 편집하는 걸 위한 건가요, 아니면 위키 게시물 100개를 편집하는 걸 위한 건가요?
위키 게시물에 대한 100개의 수정 이력이므로, 한 게시물을 백 번(또는 백 개의 게시물을 한 번씩) 편집하면 배지가 지급됩니다.
조금 더 생각해 보고 (Bert와 작은 논의도 하고
) 이 경우에는 ROW_NUMBER가 더 나은 선택이라고 생각합니다. 위 쿼리를 수정하겠습니다. ![]()