최근 30일 동안 가장 많은 게시물을 올린 사람을 확인할 수 있는 방법이 있을까요? 기본적으로 Admin->Users-> 활성 사용자 목록과 비슷하지만, 한 달이라는 필터가 적용된 형태라고 보면 됩니다.
안녕하세요, 환영합니다 ![]()
이 쿼리가 도움이 될 것입니다:
--[params]
--date :start_date = 2024-01-01
--date :end_date = 2024-02-01
--int :top = 10
SELECT
u.id AS user_id,
COUNT(*) Count
FROM posts AS p
INNER JOIN users AS u on p.user_id = u.id
INNER JOIN topics AS t ON t.id = p.topic_id AND t.deleted_at ISNULL
WHERE p.created_at::date BETWEEN :start_date AND :end_date
AND p.deleted_at ISNULL
AND t.archetype = 'regular'
AND p.post_type = 1
GROUP BY u.id, u.username
ORDER BY Count DESC
LIMIT :top
여기서 “활성” 사용자는 게시글이 아닌 “마지막 확인 시각” 기준으로 정렬된 것 같습니다. ![]()
SQL 쿼리를 실행하는 방법을 알아보다 보니, 더 비싼 요금제에 포함된 플러그인이 필요하다는 걸 알게 되었습니다. 우리 회사 규모가 꽤 작아서, 3배나 비싼 비용을 들여서 SQL 쿼리 접근 권한을 얻는 게 가치가 있을지 의문이 듭니다. 그래서 우리한테는 결국 '아니요, 할 수 없다’가 정답인 것 같습니다.
여기서 사용자 디렉터리가 도움이 될까요? 예를 들어
https://meta.discourse.org/u?order=post_count&period=monthly
데이터 탐색기 쿼리만큼 정확하지는 않지만, 충분할 수 있습니다?
기간을 선택하고, 열 헤더를 클릭하여 정렬을 추가하고, 그룹별로 필터링할 수 있으며,扳手(렌치)를 사용하여 추가 열을 넣을 수도 있습니다.
와, 어떻게 이걸 놓쳤지? 제이미, 고마워. ![]()
고마워요, 나도 어떻게 그걸 놓쳤는지 모르겠어요.