특정 카테고리에서 해결된 주제 수에 기반한 커스텀 배지 SQL 쿼리

What cool badge queries have you come up with? 토론을 이어갑니다:

다음과 같은 문제를 해결하려고 하고 있습니다. 아래 SQL 쿼리가 단일 카테고리 ID 내에서 작동하도록 하려면 어떻게 해야 할까요?

SELECT id user_id, current_timestamp granted_at
FROM users
WHERE id  IN (
       SELECT p1.user_id
       FROM post_custom_fields pc
       JOIN badge_posts p1 ON p1.id = pc.post_id
       JOIN topics t1 ON p1.topic_id = t1.id
       WHERE p1.user_id <> t1.user_id AND
                    name = 'is_accepted_answer' AND
            p1.user_id IN (
                   SELECT user_id
                   FROM posts
                   WHERE :backfill OR  p1.id IN (:post_ids)
            )
        GROUP BY p1.user_id
        HAVING COUNT(*) > 9
)

현재 이 쿼리는 전체 포럼을 확인하고 있지만, 다음과 같은 쿼리와 병합하고 싶습니다:

SELECT DISTINCT ON (t.user_id) t.user_id, t.created_at granted_at
FROM topics t
WHERE t.category_id = 28

제안이 있을까요? 죄송합니다. SQL은 꽤 오래 만져본 것이라 잘 모르겠습니다.

2개의 좋아요