각 이메일 설정을 사용하는 사용자가 몇 명인지 어떻게 알 수 있을까요?
토론 주제를 구독 중인 사용자 중 이메일로 게시글 알림을 받는 사용자가 약 10%에 불과하기 때문에 질문드립니다.
감사합니다.
각 이메일 설정을 사용하는 사용자가 몇 명인지 어떻게 알 수 있을까요?
토론 주제를 구독 중인 사용자 중 이메일로 게시글 알림을 받는 사용자가 약 10%에 불과하기 때문에 질문드립니다.
감사합니다.
Preferences/Emails 페이지에 있는 것인가요? 해당 필드는 user_options 테이블(email_level)에 있으며, 개인 메시지 관련 필드(email_messages_level)도 있습니다.
이 쿼리는 작동할 것 같습니다. 특정 주제를 모니터링하는 사용자를 추출하여 이메일 수준별로 집계합니다:
| 키 | 이메일 수준 |
|---|---|
| 0 | 항상 |
| 1 | 비활성일 때만 |
| 2 | 절대 안 함 |
-- [params]
-- int :topic_id
SELECT tu.topic_id AS topic_id,
uo.email_level,
COUNT(*)
FROM user_options uo
JOIN topic_users tu ON tu.user_id = uo.user_id
WHERE tu.notification_level = 3
AND tu.topic_id = :topic_id
GROUP BY topic_id, uo.email_level
잘못된 부분이 있는지 알려주세요. ![]()
![]()
업데이트:
이 쿼리도 작동할 것 같습니다. (표시도 조금 더 깔끔합니다)
-- [params]
-- int :topic_id
SELECT tu.topic_id AS topic_id,
COUNT(CASE WHEN tu.notification_level = 3 THEN 1 END) AS watching,
COUNT(CASE WHEN uo.email_level = 0 THEN 1 END) AS always,
COUNT(CASE WHEN uo.email_level = 1 THEN 1 END) AS only_when_away,
COUNT(CASE WHEN uo.email_level = 2 THEN 1 END) AS never
FROM user_options uo
INNER JOIN topic_users tu ON tu.user_id = uo.user_id
WHERE tu.notification_level = 3
AND tu.topic_id = :topic_id
GROUP BY topic_id