Advertisement
JanuszKowalski123

Na ilu zmianach nie pracowała maszyna (wliczając to zmianę, na której zgłoszono awarię i na której u

Apr 24th, 2024 (edited)
28
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
T-SQL 1.66 KB | None | 0 0
  1. "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.
  2.  
  3. ###########################
  4. SELECT
  5.     COUNT(DISTINCT SS.shift_number) AS number_of_shifts_without_device,
  6.     COUNT(*) AS total_shifts
  7. FROM
  8.     Servicing_Shifts SS
  9. LEFT JOIN
  10.     Device_Failures DF ON SS.shift_number = DF.shift_number
  11. WHERE
  12.     DF.failure_id IS NULL OR DF.failure_end IS NOT NULL;
  13. ###############################
  14.  
  15. To zapytanie wykonuje następujące czynności:
  16.  
  17. Łączy tabelę Servicing_Shifts z tabelą Device_Failures za pomocą kolumny shift_number.
  18. Wykorzystuje LEFT JOIN, aby uwzględnić wszystkie zmiany, niezależnie od tego, czy były związane z awariami.
  19. 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.
  20. 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.
  21. Używa funkcji COUNT(*) do zliczenia wszystkich zmian.
  22. 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