59 lines
1.4 KiB
MySQL
59 lines
1.4 KiB
MySQL
|
CREATE TABLE HourlyReport(
|
||
|
ping_max FLOAT NOT NULL,
|
||
|
ping_min FLOAT NOT NULL,
|
||
|
ping_mean FLOAT NOT NULL,
|
||
|
nb_ping_high INT NOT NULL,
|
||
|
nb_ping_loss INT NOT NULL,
|
||
|
nb_ping_reached INT NOT NULL,
|
||
|
report_day DATE NOT NULL,
|
||
|
report_hour INT NOT NULL
|
||
|
);
|
||
|
|
||
|
CREATE VIEW DailyReport AS
|
||
|
SELECT
|
||
|
H.report_day,
|
||
|
MAX(H.ping_max) AS daily_worst_ping,
|
||
|
MIN(H.ping_min) AS daily_best_ping,
|
||
|
AVG(H.ping_mean) AS daily_mean_ping,
|
||
|
SUM(H.nb_ping_high) AS daily_high_ping,
|
||
|
SUM(H.nb_ping_loss) AS daily_loss_ping,
|
||
|
SUM(H.nb_ping_reached) AS daily_reached_ping,
|
||
|
(
|
||
|
SELECT
|
||
|
SH.report_hour
|
||
|
FROM
|
||
|
HourlyReport SH
|
||
|
WHERE
|
||
|
SH.ping_mean = (
|
||
|
SELECT
|
||
|
MIN(SSH.ping_mean)
|
||
|
FROM
|
||
|
HourlyReport SSH
|
||
|
WHERE
|
||
|
SSH.report_day = sh.report_day
|
||
|
)
|
||
|
AND
|
||
|
SH.report_day = H.report_day
|
||
|
) daily_best_hour,
|
||
|
(
|
||
|
SELECT
|
||
|
SH.report_hour
|
||
|
FROM
|
||
|
HourlyReport SH
|
||
|
WHERE
|
||
|
SH.ping_mean = (
|
||
|
SELECT
|
||
|
MAX(SSH.ping_mean)
|
||
|
FROM
|
||
|
HourlyReport SSH
|
||
|
WHERE
|
||
|
SSH.report_day = sh.report_day
|
||
|
)
|
||
|
AND
|
||
|
SH.report_day = H.report_day
|
||
|
) daily_worst_hour
|
||
|
FROM
|
||
|
HourlyReport H
|
||
|
GROUP BY
|
||
|
report_day
|