我感觉我快成功了。
干得好。 ![]()
3 个赞
我正在尝试弄清楚 CTE 是否更有效率,但这让我头昏脑胀 ![]()
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
2 个赞
3 个帖子已拆分为新主题:什么是“回填”?
[quote=“JammyDodger, post:25, topic:276728”]
仅计算来自公共类别的帖子
[/quote]嗯。这意味着它不会计算,例如,我们的 TL0 锁定类别?
1 个赞
是的,badge_post 视图会预先过滤掉一些内容,以简化查询。您可以将其调整为使用 posts 表,这将包含所有类别,但可能需要额外的一两行来排除已删除的帖子或已删除的主题等(不过,如果您想保持简单,只让用户在获得徽章后保留它,即使他们的帖子已被删除,这可能不是必需的)。
1 个赞