Badge for posts with Likes from a specific group

거의 성공할 뻔했나 봐. :upside_down_face: 잘했어. :clap:

CTE가 더 효율적인지 알아보고 있는데, 머리가 아득해져요 :melting_face:


WITH staff_liked AS (

       SELECT COUNT(*), pa.post_id
       FROM post_actions pa 
       JOIN group_users gu ON gu.user_id = pa.user_id
       WHERE post_action_type_id = 2
       AND gu.group_id = 3 
       AND deleted_at IS NULL
       GROUP BY pa.post_id
       HAVING COUNT(*) >= 5

)

SELECT p.user_id, MAX(p.created_at) granted_at
FROM badge_posts p 
WHERE p.id IN (SELECT post_id FROM staff_liked)
   AND p.user_id >= 0
GROUP BY p.user_id
HAVING COUNT(*) >= 10

음. 그렇다면 예를 들어 우리 TL0 잠금 카테고리는 집계되지 않는다는 뜻이죠?

네, badge_post 뷰는 쿼리를 단순화하기 위해 일부 항목을 미리 필터링합니다. 대신 posts 테이블을 사용하도록 조정하면 모든 카테고리가 포함되지만, 삭제된 게시글이나 삭제된 주제 등을 제외하려면 한두 줄의 추가 코드가 필요할 수 있습니다(단, 게시글이 삭제되더라도 한 번 획득한 배지는 계속 유지되도록 단순하게 유지하고 싶다면 이 조치가 필요하지 않을 수 있습니다).