Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- "Na ilu zmianach nie pracowała maszyna (wliczając to zmianę, na której zgłoszono awarię i na której uruchomiono ją znów produkcyjnie)" - musimy policzyć ilość unikalnych zmian, w których urządzenie znajdowało się w fazie awarii. Wykorzystamy złączenie między tabelą Servicing_Shifts a Device_Failures oraz funkcję COUNT(DISTINCT shift_number) do zliczenia unikalnych numerów zmian.
- ###########################
- SELECT
- COUNT(DISTINCT SS.shift_number) AS number_of_shifts_without_device,
- COUNT(*) AS total_shifts
- FROM
- Servicing_Shifts SS
- LEFT JOIN
- Device_Failures DF ON SS.shift_number = DF.shift_number
- WHERE
- DF.failure_id IS NULL OR DF.failure_end IS NOT NULL;
- ###############################
- To zapytanie wykonuje następujące czynności:
- Łączy tabelę Servicing_Shifts z tabelą Device_Failures za pomocą kolumny shift_number.
- Wykorzystuje LEFT JOIN, aby uwzględnić wszystkie zmiany, niezależnie od tego, czy były związane z awariami.
- Wykorzystuje warunek DF.failure_id IS NULL OR DF.failure_end IS NOT NULL, aby zliczyć tylko te zmiany, w których urządzenie było sprawne (czyli nie było awarii) lub awaria już się zakończyła.
- Używa funkcji COUNT(DISTINCT SS.shift_number) do zliczenia unikalnych numerów zmian, w których urządzenie nie było w fazie awarii.
- Używa funkcji COUNT(*) do zliczenia wszystkich zmian.
- Powyższe zapytanie zwróci wyniki, w których number_of_shifts_without_device będzie zawierać liczbę zmian, w których urządzenie było sprawne, a total_shifts będzie zawierać liczbę wszystkich zmian. Dzięki temu można obliczyć procent zmian, w których urządzenie nie pracowało.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement