59 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			SQL
		
	
	
	
	
	
			
		
		
	
	
			59 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			SQL
		
	
	
	
	
	
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
 |