안녕하세요,
특정 기간 내 직원 게시글/토픽의 수와 비율을 확인할 수 있는 Data Explorer 쿼리를 아시는 분 계신가요?
도와주셔서 감사합니다.
다음 쿼리가 도움이 되기를 바랍니다.
--[params]
--date :start_date
--date :end_date
WITH posts_data AS (
SELECT
COUNT(*) AS total_posts,
SUM(CASE
WHEN u.admin = 't' OR u.moderator = 't' THEN 1
ELSE 0
END) AS staff_posts
FROM posts p
INNER JOIN users u ON u.id = p.user_id
WHERE p. post_type = 1
AND p.deleted_at ISNULL
AND p.created_at BETWEEN :start_date AND :end_date
AND p.user_id > 0
)
SELECT
total_posts,
staff_posts,
ROUND((staff_posts/total_posts::decimal)*100,2) "staff_posts %"
FROM posts_data
| total_posts | staff_posts | staff_posts % |
|---|---|---|
| 7400 | 3108 | 42.0 |
안녕하세요, @michebs,
공유해 주셔서 감사합니다. 우리가 직접 만든 특정 그룹에 대해 이 기능이 적용될 수 있는지 여쭤봐도 될까요?
예를 들어, 직원 그룹이 있지만 그중 일부는 모더레이터나 관리자가 아닌 경우, "Katalon_team"이라는 새 그룹을 만들어야 합니다. 이 Katalon 팀에 속한 모든 구성원의 데이터를 가져올 수 있을까요?
감사합니다.
쿼리를 조정하고 그룹 이름을 입력 매개변수로 추가하여 이제 모든 그룹에 대해 작동하도록 만들었습니다. 도움이 되길 바랍니다.
--[params]
--date :start_date = 2022-01-01
--date :end_date = 2023-01-01
--string :group_name = staff
WITH group_filter AS (
SELECT user_id FROM group_users gu
JOIN groups g ON g.id = gu.group_id
WHERE LOWER(g.name) LIKE '%'||:group_name||'%'
),
posts_data AS (
SELECT
COUNT(*) AS total_posts,
SUM(CASE
WHEN gf.user_id ISNULL THEN 0
ELSE 1
END) AS staff_posts
FROM posts p
LEFT JOIN group_filter gf ON gf.user_id = p.user_id
WHERE p. post_type = 1
AND p.deleted_at ISNULL
AND p.created_at BETWEEN :start_date AND :end_date
AND p.user_id > 0
)
SELECT
total_posts,
staff_posts,
ROUND((staff_posts/total_posts::decimal)*100,2) "staff_posts %"
FROM posts_data
이 오류는 27번째 줄의 마지막 SELECT 구문이 누락된 것과 관련이 있는 것 같습니다.
SELECT
total_posts,
staff_posts,
ROUND((staff_posts/total_posts::decimal)*100,2) "staff_posts %"
FROM posts_data
이렇게 이해하는 것이 맞을까요?
네, 죄송합니다. 제 실수였습니다. 도움을 주셔서 정말 감사합니다.