콘텐츠 감사: 카테고리, 주제 및 답변을 가져오는 보고서

클라이언트와 함께 콘텐츠 감사(Content Audit)를 수행하고 있습니다. 2023년부터 현재까지의 모든 카테고리, 주제, 답변을 가져오는 쿼리를 실행하고 싶습니다. 이상적으로는 보고서에 날짜, 게시자, 제목, 링크, 전체 텍스트가 포함되기를 바랍니다.

Discourse Data Explorer가 가장 좋은 옵션일 것으로 생각합니다. 다음 게시물을 참고하고 있습니다:

비슷한 보고서를 실행해 본 분이 계신가요? 본인의 경험을 바탕으로 모범 사례를 공유해 주실 수 있을까요? 감사합니다!

안녕하세요 @RachFeverBee,

원하시는 정보를 찾는 가장 좋은 방법은 Data Explorer 쿼리를 사용하는 것입니다.

공유해 주신 주제와 보고 요구 사항 설명에 기반하여, 다음 Data Explorer 쿼리를 시작점으로 사용할 수 있습니다:

카테고리, 주제 및 답변

-- [params]
-- date :start_date = 2023-01-01
-- date :end_date = 2025-01-28

WITH filtered_topics AS (
    SELECT 
        t.id AS topic_id,
        t.title AS topic_title,
        t.created_at AS topic_created_at,
        t.user_id AS topic_user_id,
        t.category_id AS topic_category_id
    FROM 
        topics t
    WHERE 
        t.created_at BETWEEN :start_date AND :end_date
),
filtered_posts AS (
    SELECT 
        p.id AS post_id,
        p.topic_id,
        p.user_id AS post_user_id,
        p.created_at AS post_created_at,
        p.raw AS post_content,
        p.post_number
    FROM 
        posts p
    WHERE 
        p.created_at BETWEEN :start_date AND :end_date
),
categories_with_topics AS (
    SELECT 
        c.id AS category_id,
        c.name AS category_name,
        ft.topic_id,
        ft.topic_title,
        ft.topic_created_at,
        ft.topic_user_id
    FROM 
        categories c
    JOIN 
        filtered_topics ft ON c.id = ft.topic_category_id
),
final_data AS (
    SELECT 
        cwt.category_name,
        cwt.topic_id,
        cwt.topic_title,
        cwt.topic_created_at,
        cwt.topic_user_id,
        fp.post_id,
        fp.post_content,
        fp.post_created_at,
        fp.post_user_id,
        fp.post_number
    FROM 
        categories_with_topics cwt
    LEFT JOIN 
        filtered_posts fp ON cwt.topic_id = fp.topic_id
)
SELECT 
    fd.category_name AS "Category",
    fd.topic_id AS "Topic ID",
    fd.topic_title AS "Topic Title",
    fd.topic_created_at AS "Topic Created At",
    fd.topic_user_id AS "Topic Poster",
    fd.post_id AS "Post ID",
    fd.post_content AS "Post Content",
    fd.post_created_at AS "Post Created At",
    fd.post_user_id AS "Post Poster",
    fd.post_number AS "Post Number"
FROM 
    final_data fd
ORDER BY 
    fd.topic_created_at ASC, 
    fd.post_created_at ASC

이 보고서는 다음 결과를 생성합니다:

  • 카테고리 이름: 카테고리의 이름.
  • 주제 ID: 주제에 대한 링크 가능한 ID.
  • 주제 제목: 주제의 제목.
  • 주제 생성 시각: 주제가 생성된 날짜와 시간.
  • 주제 작성자: 주제를 생성한 사용자.
  • 글 ID: 글에 대한 링크 가능한 ID.
  • 글 내용: 글의 전체 텍스트.
  • 글 생성 시각: 글이 생성된 날짜와 시간.
  • 글 작성자: 글을 작성한 사용자.
  • 글 번호: 주제 내의 글 번호.

예시 결과

카테고리 주제 ID 주제 제목 주제 생성 시각 주제 작성자 글 ID 글 내용 글 생성 시각 글 작성자 글 번호
일반 토론 101 포럼에 오신 것을 환영합니다! 2023-01-02 10:00:00 UTC 1 201 여러분, 안녕하세요! 환영합니다! 2023-01-02 10:05:00 UTC 2 1
일반 토론 101 포럼에 오신 것을 환영합니다! 2023-01-02 10:00:00 UTC 1 202 따뜻한 환영에 감사합니다! 2023-01-02 10:10:00 UTC 3 2
기술 지원 102 내 기기를 초기화하는 방법? 2023-02-15 14:30:00 UTC 4 203 누군가 이 기기를 초기화하는 데 도움을 줄 수 있나요? 2023-02-15 14:35:00 UTC 4 1
기술 지원 102 내 기기를 초기화하는 방법? 2023-02-15 14:30:00 UTC 4 204 물론이죠, 여기 단계가 있습니다… 2023-02-15 14:40:00 UTC 5 2
공지사항 103 새로운 기능이 출시되었습니다! 2023-03-01 09:00:00 UTC 6 205 새로운 기능을 확인해 보세요! 2023-03-01 09:05:00 UTC 6 1

원하는 결과 표시 방식에 따라 끝에 있는 ORDER BY 구문을 조정하여 쿼리 결과의 정렬 방식을 변경할 수 있습니다. 또한, 사이트에 많은 수의 주제와 글이 있는 경우 Data Explorer 플러그인에서 결과 제한을 염두에 두어야 할 수 있습니다.

사라, 정말 도움이 되네요. 지금 우리가 딱 필요한 내용과 정확히 일치합니다.