45 lines
1.3 KiB
Plaintext
45 lines
1.3 KiB
Plaintext
WITH INDUCTS AS (
|
|
SELECT
|
|
MIN(s04_timestamp) AS start_timestamp,
|
|
MAX(s04_timestamp) AS end_timestamp,
|
|
sorter,
|
|
induct,
|
|
COUNT(*) AS total,
|
|
SUM(carriers=1) AS single_carrier,
|
|
SUM(carriers=2) AS double_carrier,
|
|
AVG(pkg_length/10) AS pkg_length_avg,
|
|
AVG(gap_leading/10) AS gap_avg
|
|
FROM package_history
|
|
WHERE s04_timestamp BETWEEN :startDate AND :endDate
|
|
GROUP BY sorter, induct
|
|
), SORTERS AS (
|
|
SELECT
|
|
sorter,
|
|
3600/TIMESTAMPDIFF(SECOND, :startDate, :endDate) AS pph_multiplier,
|
|
SUM(total) AS total
|
|
FROM INDUCTS
|
|
GROUP BY sorter
|
|
)
|
|
SELECT
|
|
I.start_timestamp,
|
|
I.end_timestamp,
|
|
S.sorter,
|
|
I.induct,
|
|
/* Averages: */
|
|
ROUND(I.pkg_length_avg, 1) AS 'avg_package_length_(")',
|
|
ROUND(I.gap_avg, 1) AS 'avg_gap_(")',
|
|
/* Counts: */
|
|
I.total AS total_count,
|
|
I.single_carrier AS single_carrier_count,
|
|
I.double_carrier AS double_carrier_count,
|
|
/* PPH: */
|
|
ROUND(I.total*S.pph_multiplier) AS total_pph,
|
|
ROUND(I.single_carrier*S.pph_multiplier) AS single_carrier_pph,
|
|
ROUND(I.double_carrier*S.pph_multiplier) AS double_carrier_pph,
|
|
/* Percents: */
|
|
ROUND(I.total/S.total, 4) AS 'total/sorter_percent',
|
|
ROUND(I.single_carrier/I.total, 4) AS single_carrier_percent,
|
|
ROUND(I.double_carrier/I.total, 4) AS double_carrier_percent
|
|
FROM INDUCTS I, SORTERS S
|
|
WHERE I.sorter = S.sorter
|
|
ORDER BY S.sorter, I.induct; |