Salut à tous,
Savez-vous quelle requête dans l’Explorateur de données permet de voir le nombre et le pourcentage de publications/sujets du personnel sur une certaine période ?
Merci pour votre aide.
Salut à tous,
Savez-vous quelle requête dans l’Explorateur de données permet de voir le nombre et le pourcentage de publications/sujets du personnel sur une certaine période ?
Merci pour votre aide.
J’espère que la requête suivante vous aidera.\n\n\nsql\n--[params]\n--date :start_date\n--date :end_date\n\nWITH posts_data AS (\n SELECT \n COUNT(*) AS total_posts,\n SUM(CASE\n WHEN u.admin = 't' OR u.moderator = 't' THEN 1 \n ELSE 0\n END) AS staff_posts\n FROM posts p\n INNER JOIN users u ON u.id = p.user_id\n WHERE p. post_type = 1\n AND p.deleted_at ISNULL\n AND p.created_at BETWEEN :start_date AND :end_date\n AND p.user_id \u003e 0\n)\n \nSELECT \n total_posts, \n staff_posts,\n ROUND((staff_posts/total_posts::decimal)*100,2) \"staff_posts %\"\nFROM posts_data\n\n\n|total_posts|staff_posts|staff_posts %|\n|—|—|—|\n|7400|3108|42.0|
Salut @michebs,
Merci de partager cela. Puis-je demander si nous pouvons appliquer cela à un groupe spécifique créé par nous ?
Disons que nous avons un groupe de personnel, mais qu’ils ne sont pas tous des modérateurs ou des administrateurs, nous devons donc créer un nouveau groupe appelé « Katalon_team ». Pouvons-nous obtenir les données de toutes les personnes de cette équipe Katalon ?
Merci.
J’ai ajusté la requête et ajouté le nom du groupe en tant que paramètre d’entrée, de cette façon, cela fonctionnera pour n’importe quel groupe. J’espère que cela vous aidera.
--[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
Salut Michelle,
Merci pour la mise à jour SQL. J’ai eu un problème en l’exécutant, comme le montre l’image ci-jointe.
Merci de me conseiller sur la façon de résoudre ce problème. Merci.
Cette erreur semble être liée à l’absence du dernier SELECT, ligne 27.
SELECT
total_posts,
staff_posts,
ROUND((staff_posts/total_posts::decimal)*100,2) "staff_posts %"
FROM posts_data
Est-ce que cela a du sens ?
Oui, désolé, c’était mon erreur, merci beaucoup pour votre aide.
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.