BETA: De reporting database is momenteel in beta en kan nog steeds veranderen. Deze is alleen beschikbaar via opt-in. Om deel te nemen aan de beta of vragen te stellen, neem contact op met support@azumuta.com.
Voor u begint
Nadat u verbinding hebt gemaakt, selecteert u uw workspace schema. Vervang company_<your-workspace-id> door uw geconfigureerde schemanaam. Stel de sessietijdzone in op UTC voor consistente maandelijkse totalen.
set search_path to "company_<your-workspace-id>";
set time zone 'UTC';
Wanneer een synchronisatie een verwijderde bronrecord detecteert, verwijdert deze de bijbehorende reporting rijen. Gearchiveerde records kunnen blijven bestaan. Oudere databases kunnen een deleted_at kolom behouden, maar de huidige synchronisatie onderhoudt deze niet. Deze query's gebruiken die kolom niet. Zie Verwijderingen en andere conventies.
Recordings per Status
Tel recordings per opgeslagen status. Alleen recordings met een instructieversie zijn opgenomen. Deze kunnen geplande audits bevatten die nog niet zijn gestart. Zie Audit recordings in de reporting database.
select status, count(*) as recordings
from recording
group by status
order by recordings desc;
Issues per Bordkolom
Tel Continue verbetering issues per bord en kolom. Groepeer per de identifiers om kolommen met dezelfde naam gescheiden te houden. Dit bevat gearchiveerde issues. Om gearchiveerde issues uit te sluiten, voegt u and archived_at is null toe aan het filter.
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;
Issues aangemaakt per Maand
Tel issues per aanmaakmaand in UTC. Dit bevat alle bordtypen en gearchiveerde issues die in de reporting database blijven.
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;
Gemiddelde Actieve Tijd per Werkinstructie
actual_duration is de actieve werktijd van een recording, in seconden. Deze query sluit recordings zonder duur uit. Het toont het gemiddelde voor de 20 werkinstructies met de meeste resterende recordings. Het filtert niet op status of recordingstype.
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;
Aantal orderitems gekoppeld aan een zone
Telmeting: één product-order werkinstructie item. Vervang <zone-id> door de identifier van de zone. Dit bevat alle koppelingtypen en behoudt items in de wachtrij zonder recordings. Het filtert niet op order- of recordingstatus.
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 controleert op een koppeling zonder rijen aan de telling toe te voegen. Er is geen recording join nodig. Eén item kan betrekking hebben op meerdere zones, dus tellingen voor verschillende zones kunnen elkaar overlappen. Voeg deze tellingen niet toe om een workspace totaal te berekenen. Zie Zone koppelingen en toewijzing voor bronprioriteit en hertoewijzingsbeperkingen.
Aantal recordings waaraan elke operator heeft gewerkt
Telmeting: één afzonderlijke recording per operator. Deze query bevat normale stapbezoeken met een gebruikers-ID. Het sluit dubbelcheck bezoeken uit en filtert niet op recordingstatus of -type.
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;
Herhaalde bezoeken verhogen de telling van een operator voor dezelfde recording niet. Gedeelde recordings tellen voor meerdere operators, dus operator totalen kunnen elkaar overlappen. Een open bezoek heeft mogelijk nog geen rij. Dit meet geregistreerde deelname, niet toewijzing of succesvolle voltooiing. Zie Geplande gebruikers en werkelijke operators.
Vergelijk toepasselijke stappen met geregistreerde antwoorden
Output eenheid: één toepasselijke stap per recording. Begin met recording_step.active = true om stappen uit te sluiten die niet van toepassing zijn op de geselecteerde varianten. Left join normale bezoektotalen op zowel recording als stap om stappen zonder totalen te behouden.
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;
De query bevat alle recording statussen en typen die staprijen hebben, inclusief onafgemaakte en geannuleerde werk. Het sluit dubbelcheck totalen uit. Behoud de type voorwaarde in de join: een filter in WHERE zou stappen zonder totalen verwijderen.
De labels beschrijven bewijs, niet slagen of mislukken. Sommige stappen vereisen geen antwoord. Een open bezoek of een geblokkeerde checkpoging kan ook een ontbrekend antwoord verklaren. NULL totalen betekenen geen overeenkomende rij, niet nul pogingen. Zie Bezoeken, pogingen en toepasselijke stappen voordat u een antwoordvoltooiingspercentage berekent.
Tips
- Koppel gerelateerde identifiers. Bijvoorbeeld,
recording.workinstruction_idkomt overeen metworkinstruction.id. - Gebruik de ingebouwde kolombeschrijvingen om veldmeaningen en eenheden te controleren.
- Aggregeer en filter in SQL voordat u gegevens in uw BI-tool laadt om de hoeveelheid overgedragen gegevens te verminderen.