Ciao a tutti,
Sapete per caso la query di Data Explorer che aiuta a vedere il numero e la percentuale di post/argomenti dello staff entro un certo periodo di tempo?
Grazie per tutto l’aiuto.
Ciao a tutti,
Sapete per caso la query di Data Explorer che aiuta a vedere il numero e la percentuale di post/argomenti dello staff entro un certo periodo di tempo?
Grazie per tutto l’aiuto.
Spero che la seguente query ti aiuti.
--[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 |
Ciao @michebs,
Grazie per aver condiviso questo. Posso chiedere se possiamo applicarlo a un gruppo specifico creato da noi?
Supponiamo di avere un gruppo di personale ma non tutti sono moderatori o amministratori, quindi dobbiamo creare un nuovo gruppo chiamato “Katalon_team”, possiamo ottenere i dati di tutte le persone in quel team Katalon?
Grazie.
Ho modificato la query e aggiunto il nome del gruppo come parametro di input, in questo modo funzionerà per qualsiasi gruppo. Spero sia d’aiuto.
--[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
Ciao Michelle,
Grazie per l’SQL aggiornato. Ho riscontrato un problema durante l’esecuzione, come mostrato nell’immagine allegata.
Per favore, consigliami come potrei risolvere questo problema. Grazie.
Questo errore sembra essere collegato all’assenza dell’ultimo SELECT, riga 27.
SELECT
total_posts,
staff_posts,
ROUND((staff_posts/total_posts::decimal)*100,2) "staff_posts %"
FROM posts_data
Ha senso?
Sì, scusa il mio errore, grazie mille per il tuo aiuto.
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.