BNA8/.resources/3c8a6a1db70949c3f0eec5363047b91be4e0165f95a7847e8a5d333964d598c8

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;