Ich befinde mich in den frühen Phasen der Zusammenstellung eines wöchentlichen Berichts über die Daten meiner Website. Derzeit betrachte ich einige der Metriken, die ich aktiv verfolgen möchte. Ich interessiere mich für den Bericht über Trendsuchbegriffe, aber wenn ich mir dessen Verlauf ansehe, sieht es so aus, als ob die Daten durch Suchanfragen von Administratoren/Moderatoren stark verzerrt sein könnten.
Das Forum fungiert teilweise als Wissensdatenbank für die von meinem Unternehmen hergestellten Produkte, und als solche suchen wir oft nach relevanten Fehlerbehebungsbeiträgen, wenn wir auf Tickets antworten. Gibt es eine einfache Möglichkeit, die Suchanfragen von Administratoren/Moderatoren aus diesem Bericht zu entfernen?
--[params]
-- date :start_date
-- date :end_date
WITH admin_moderator_users AS (
SELECT
gu.user_id
FROM
group_users gu
JOIN
groups g ON gu.group_id = g.id
WHERE
g.name IN ('admins', 'moderators')
)
SELECT
lower(sl.term) AS search_term,
count(sl.id) AS term_count,
(COALESCE(SUM(CASE WHEN sl.search_result_type IS NULL THEN 0 ELSE 1 END), 0) / count(sl.id)::float) * 100 AS click_through_rate,
SUM(CASE WHEN sl.search_result_type IS NULL THEN 0 ELSE 1 END) as click_count
FROM
search_logs sl
LEFT JOIN
admin_moderator_users amu ON sl.user_id = amu.user_id
WHERE
sl.created_at::date BETWEEN :start_date AND :end_date
AND amu.user_id IS NULL
GROUP BY
lower(sl.term)
ORDER BY
term_count DESC
Hier ist die SQL für den Dashboard-Bericht „Trending Search Terms“: