Explorateur de données Requête - Couverture du personnel

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|

4 « J'aime »

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.

2 « J'aime »

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
6 « J'aime »

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.

1 « J'aime »

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 ?

2 « J'aime »

Oui, désolé, c’était mon erreur, merci beaucoup pour votre aide.

2 « J'aime »

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.