43 lines
1.7 KiB
Plaintext
43 lines
1.7 KiB
Plaintext
WITH SORTERS AS (
|
|
SELECT
|
|
DATE_FORMAT(MIN(s04_timestamp), "%Y-%m-%d %H:%i:00") AS time,
|
|
COUNT(*) AS total,
|
|
/* PPH Data */
|
|
SUM(sort_code="Success") AS success,
|
|
SUM(sort_code IN ("Dest Invalid", "Dest None", "Underutilized")) AS awcs,
|
|
SUM(sort_code IN ("Dest Disabled", "Dest Full", "Dim Error", "Unexpected", "Weight Err")) AS operational,
|
|
SUM(sort_code IN ("Dest Fault", "Div Fail", "Gap Err", "Lost", "Rate High", "Track Err", "Unknown", "Unsafe")) AS machine,
|
|
SUM(sort_code IN ("No Read", "No Code", "Multi Label")) AS scanner,
|
|
/* Problem Solve Data */
|
|
SUM(sort_code="No Read") AS no_read,
|
|
SUM(sort_code="No Code") AS no_code,
|
|
SUM(sort_code="Multi Label") AS multi_label,
|
|
/* Sorter Error Data */
|
|
SUM(sort_code="Gap Err") AS gap_err,
|
|
SUM(sort_code="Div Fail") AS div_fail,
|
|
SUM(sort_code="Dest None") AS dest_none,
|
|
SUM(sort_code="Lost") AS lost
|
|
FROM package_history
|
|
WHERE s04_timestamp BETWEEN :startDate AND :endDate
|
|
AND sorter = :sorter
|
|
GROUP BY DATE_FORMAT(s04_timestamp, "%Y-%m-%d %H:%i:00")
|
|
ORDER BY DATE_FORMAT(s04_timestamp, "%Y-%m-%d %H:%i:00")
|
|
), DATA AS (
|
|
SELECT
|
|
total,
|
|
/* PPH: */
|
|
ROUND((SUM((total - machine - scanner)*60) OVER w)/(:movAvgMin+1)) AS total_pph,
|
|
/* Problem Solve Percents: */
|
|
no_read+no_code+multi_label AS scanner,
|
|
/* Sorter Error Percents: */
|
|
gap_err+div_fail+dest_none+lost AS sorter
|
|
FROM SORTERS
|
|
WINDOW w AS (ORDER BY STR_TO_DATE(time, "%Y-%m-%d %H:%i:00") RANGE BETWEEN INTERVAL :movAvgMin MINUTE PRECEDING AND CURRENT ROW)
|
|
)
|
|
SELECT
|
|
MAX(total_pph) AS total_pph,
|
|
/* Problem Solve Percents: */
|
|
ROUND(SUM(scanner)/SUM(total), 4) AS scanner,
|
|
/* Sorter Error Percents: */
|
|
ROUND(SUM(sorter)/SUM(total), 4) AS sorter
|
|
FROM DATA; |