사용자들에게 공개할 쿼리를 작성하려고 하는데, 모든 사용자의 결과가 아니라 현재 로그인된 사용자의 결과만 반환되도록 하고 싶습니다. 아래는 모든 사용자의 통계를 반환하는 관리자를 위한 비공개 쿼리입니다. 현재 사용자만 대상으로 설정하는 방법을 찾지 못하겠습니다. 감사합니다!
-- [params]
-- string :interval = 1 month
SELECT
u.username,
COALESCE(t.created_topics, 0) AS created_topics,
COALESCE(p.replies_to_others, 0) AS replies_to_others,
COALESCE(ROUND(p.replies_to_others::numeric / NULLIF(t.created_topics, 0), 2), 0) AS ratio
FROM
users u
LEFT JOIN (
SELECT
user_id,
COUNT(*) AS created_topics
FROM
topics
WHERE
created_at >= CURRENT_DATE - INTERVAL :interval
AND category_id IN (
SELECT id FROM categories WHERE parent_category_id = 87 OR id = 87
)
GROUP BY
user_id
) t ON t.user_id = u.id
LEFT JOIN (
SELECT
p.user_id,
COUNT(DISTINCT p.topic_id) AS replies_to_others
FROM
posts p
JOIN topics t ON p.topic_id = t.id
WHERE
p.post_number > 1
AND p.user_id != t.user_id
AND p.created_at >= CURRENT_DATE - INTERVAL :interval
AND t.category_id IN (
SELECT id FROM categories WHERE parent_category_id = 87 OR id = 87
)
AND LENGTH(p.raw) >= 100
AND p.post_number = (
SELECT MIN(p2.post_number)
FROM posts p2
WHERE p2.topic_id = p.topic_id
AND p2.user_id = p.user_id
AND p2.post_number > 1
)
GROUP BY
p.user_id
) p ON p.user_id = u.id
WHERE
t.created_topics > 0 OR p.replies_to_others > 0
ORDER BY
ratio DESC