사용자 페이지뷰 카운팅 (관리자 및 크롤러 제외)

이런 식으로 하면 될까요? 크롤러의 경우 IP 주소가 null이 되는 건가요?

포함할 대상:

  • 익명 사용자
  • 로그인한 사용자

제외할 대상:

  • 크롤러
  • 스태프 사용자
-- [params]
-- string :date = '2020-01-01'
-- boolean :staff = false

WITH t AS (
    SELECT date(:date) AS START
),
f AS (
    SELECT id as user_id
    FROM users u
    WHERE u.moderator = 'True' or u.admin = 'True'
)

    SELECT
    user_id,
--    date_part('year', viewed_at) as year,
--    date_part('week', viewed_at) as week,
    COUNT(topic_id) AS topics_viewed
    FROM topic_views, t
    WHERE viewed_at > t.START
    AND ((ip_address is not null AND user_id is NULL) OR
        user_id not in (select f.user_id from f))
    GROUP BY user_id
    ORDER BY topics_viewed DESC
    -- GROUP BY year, week
    -- ORDER BY year, week