Hola a todos,
¿Saben cuál es la consulta del Explorador de Datos que ayuda a ver el número y el porcentaje de publicaciones/temas del personal dentro de un período de tiempo determinado?
Gracias por toda la ayuda.
Hola a todos,
¿Saben cuál es la consulta del Explorador de Datos que ayuda a ver el número y el porcentaje de publicaciones/temas del personal dentro de un período de tiempo determinado?
Gracias por toda la ayuda.
Espero que la siguiente consulta te ayude con eso.
--[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 |
Hola @michebs,
Gracias por compartir esto. ¿Puedo preguntar si podemos aplicar esto a un grupo específico creado por nosotros?
Digamos que tenemos un grupo de personal, pero no todos son moderadores o administradores, por lo que necesitamos crear un nuevo grupo llamado “Katalon_team”. ¿Podemos obtener los datos de todas las personas en ese equipo de Katalon?
Gracias.
Ajusté la consulta y agregué el nombre del grupo como parámetro de entrada, de esta manera funcionará para cualquier grupo. Espero que ayude.
--[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
Hola Michelle,
Gracias por el SQL actualizado. Tengo un problema al ejecutarlo, como se muestra en la imagen adjunta.
Por favor, indícame cómo podría resolver esto. Gracias.
Este error parece estar relacionado con la ausencia del último SELECT, línea 27.
SELECT
total_posts,
staff_posts,
ROUND((staff_posts/total_posts::decimal)*100,2) "staff_posts %"
FROM posts_data
¿Tiene sentido esto?
Sí, lo siento, fue mi error, muchas gracias por tu ayuda.
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.