Учитывая, что у нас установлен плагин Discourse Solved, а также плагин Data Explorer, какой запрос нужен, чтобы получить количество решений по каждому пользователю?
Когда пользователь решает тему, в таблицу user_actions добавляется запись с action_type, установленным в 15.
Следующий запрос должен дать вам то, что вы ищете:
SELECT
user_id,
COUNT(1) AS solved_count
FROM user_actions
WHERE action_type = 15
GROUP BY user_id
ORDER BY solved_count DESC
Отлично! Большое спасибо!
Привет!
У меня ещё один вопрос по этому поводу. Учитываются ли все ответы из публичных постов, а также те, которые пользователь отметил как решение при обмене личными сообщениями с кем-то? Спасибо за помощь!
Вы не можете помечать личные сообщения как решённые. Это настройка для каждой категории.
Если включена настройка сайта «Разрешить отметку решений во всех темах», сообщения в личных сообщениях могут быть помечены как решения. Если сообщение в личной переписке помечено как решение, оно будет включено в подсчёт решений, который возвращается в результате запроса, который я опубликовал.
Спасибо большое, Саймон, за эту информацию!
В дополнение к вопросу Саймона выше, мы используем эту версию для просмотра количества решений на пользователя за определенный период (в формате даты yyyy-mm-dd):
--[params]
-- date :start_date
-- date :end_date
SELECT
user_id,
COUNT(1) AS solved_count
FROM user_actions
WHERE created_at::date BETWEEN :start_date AND :end_date
AND action_type = 15
GROUP BY user_id
ORDER BY solved_count DESC
Удобно, что можно отслеживать, как это меняется от месяца к месяцу.
Спасибо, Бен, что поделился этим!
Спасибо всем за эти запросы!
Я настраиваю свой форум Discourse и хотел бы узнать, как получить среднее время разрешения (time_to_resolution) для всего форума, аналогично среднему времени первого ответа (average_time_for_first_response).
Как вы думаете, с точки зрения сообщества, имеет ли смысл предоставлять такую информацию? Если да, то я не уверен, как сформировать такой запрос. Есть какие-нибудь идеи?
Спасибо!
