Ejemplos de consultas analíticas
BETA: La base de datos de informes está actualmente en beta y puede seguir evolucionando. Está disponible solo por participación voluntaria. Para unirse a la beta o hacer preguntas, contacte con support@azumuta.com.
Antes de comenzar
Después de conectarse, seleccione el esquema de su espacio de trabajo. Reemplace company_<your-workspace-id> por el nombre de esquema configurado. Ajuste la zona horaria de la sesión a UTC para totales mensuales coherentes.
set search_path to "company_<your-workspace-id>";
set time zone 'UTC';
Cuando una sincronización detecta un registro de origen eliminado, elimina las filas correspondientes en la base de datos de informes. Los registros archivados pueden permanecer. Las bases de datos antiguas pueden conservar una columna deleted_at, pero la sincronización actual no la mantiene. Estas consultas no usan esa columna. Vea Deleciones y otras convenciones.
Grabaciones por estado
Cuente las grabaciones por el estado almacenado. Solo se incluyen las grabaciones con una versión de instrucción. Estas pueden incluir auditorías planificadas que no se han iniciado. Vea Grabaciones de auditoría en la base de datos de informes.
select status, count(*) as recordings
from recording
group by status
order by recordings desc;
Incidencias por columna del tablero
Cuente las incidencias de Mejora Continua por tablero y columna. Agrupe por los identificadores para mantener separadas las columnas con el mismo nombre. Esto incluye incidencias archivadas. Para excluir incidencias archivadas, añada and archived_at is null al filtro.
select board_id, column_id, column_name, count(*) as issues
from issue
where board_type = 'continuous-improvement'
group by board_id, column_id, column_name
order by issues desc;
Incidencias creadas por mes
Cuente las incidencias por mes de creación en UTC. Esto incluye todos los tipos de tablero y las incidencias archivadas que permanecen en la base de datos de informes.
select date_trunc('month', created_at) as month,
count(*) as issues
from issue
where created_at is not null
group by month
order by month;
Tiempo activo medio por instrucción de trabajo
actual_duration es el tiempo de trabajo activo de una grabación, en segundos. Esta consulta excluye las grabaciones sin duración. Muestra la media para las 20 instrucciones de trabajo con más grabaciones restantes. No filtra por estado ni por tipo de grabación.
select workinstruction_id,
count(*) as recordings,
round(avg(actual_duration)::numeric, 1) as avg_seconds
from recording
where actual_duration is not null
group by workinstruction_id
order by recordings desc
limit 20;
Contar ítems de pedido asociados a una zona
Unidad de conteo: un elemento de product_order_workinstruction (ítem de instrucción de trabajo asociado a un pedido de producto). Reemplace <zone-id> por el identificador de la zona. Esto incluye todos los tipos de asociación y conserva ítems en cola sin grabaciones. No filtra el estado del pedido ni de la grabación.
select count(*) as order_items
from product_order_workinstruction as item
where exists (
select 1
from product_order_workinstruction_spot as zone
where zone.product_order_workinstruction_id = item.id
and zone.spot_id = '<zone-id>'
);
EXISTS comprueba una asociación sin añadir filas al conteo. No se requiere hacer join con recording. Un ítem puede relacionarse con varias zonas, por lo que los conteos de zonas distintas pueden solaparse. No sume esos conteos para calcular un total de espacio de trabajo. Vea Asociaciones de zona y asignación para conocer la prioridad de origen y los límites de reasignación.
Conteo de grabaciones trabajadas por cada operario
Unidad de conteo: una grabación distinta por operario. Esta consulta incluye visitas de paso normales con un ID de usuario. Excluye las visitas de doble verificación y no filtra por estado ni por tipo de grabación.
select user_id,
count(distinct recording_id) as recordings
from instruction_visit
where type = 'normal'
and user_id is not null
group by user_id
order by recordings desc, user_id;
Las visitas repetidas no aumentan el conteo de un operario para la misma grabación. Las grabaciones compartidas se contabilizan para varios operarios, por lo que los totales por operario pueden solaparse. Una visita abierta puede no tener todavía una fila. Esto mide la participación registrada, no la asignación ni la finalización exitosa. Vea Usuarios planificados y operarios reales.
Comparar pasos aplicables con respuestas registradas
Unidad de salida: un paso aplicable por grabación. Parta de recording_step.active = true para excluir pasos que no correspondan a las variantes seleccionadas. Haga un left join de los totales de visitas normales por grabación y paso para conservar pasos sin totales.
select step.recording_id,
step.instruction_step_id,
totals.visits,
totals.answer_attempts,
totals.final_answer,
case
when totals.id is null then 'No normal-visit totals'
when totals.final_answer is null then 'No recorded answer'
else 'Answer recorded'
end as answer_evidence
from recording_step as step
left join instruction_total_visit as totals
on totals.recording_id = step.recording_id
and totals.instruction_step_id = step.instruction_step_id
and totals.type = 'normal'
where step.active = true
order by step.recording_id, step.instruction_step_id;
La consulta incluye todos los estados y tipos de grabación que tienen filas de paso, incluyendo trabajos sin terminar y cancelados. Excluye los totales de doble verificación. Mantenga la condición type en el join: un filtro en WHERE eliminaría los pasos sin totales.
Las etiquetas describen la evidencia, no aprobado o suspendido. Algunos pasos no requieren respuesta. Una visita abierta o un intento de verificación bloqueado también pueden explicar una respuesta ausente. Los totales NULL significan que no hay fila coincidente, no intentos a cero. Vea Visitas, intentos y pasos aplicables antes de calcular una tasa de finalización de respuestas.
Consejos
- Relacione identificadores. Por ejemplo,
recording.workinstruction_idcoincide conworkinstruction.id. - Use las descripciones de columnas integradas para comprobar el significado y las unidades de los campos.
- Agregue y filtre en SQL antes de cargar los datos en su herramienta de BI para reducir la cantidad de datos transferidos.
- Antes de comenzar
- Grabaciones por estado
- Incidencias por columna del tablero
- Incidencias creadas por mes
- Tiempo activo medio por instrucción de trabajo
- Contar ítems de pedido asociados a una zona
- Conteo de grabaciones trabajadas por cada operario
- Comparar pasos aplicables con respuestas registradas
- Consejos