0% found this document useful (0 votes)
28 views5 pages

Tutela ReportRecreation Template 1 Regional

This document contains a SQL query that selects various metrics related to network quality of service (QoS), such as median download throughput, count of tests, average jitter, and percentages of tests meeting certain thresholds. The query joins multiple tables to get location, device, and QoS data and filters for specific test conditions. Metrics are calculated using conditional aggregation and approximation functions to handle null values.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
28 views5 pages

Tutela ReportRecreation Template 1 Regional

This document contains a SQL query that selects various metrics related to network quality of service (QoS), such as median download throughput, count of tests, average jitter, and percentages of tests meeting certain thresholds. The query joins multiple tables to get location, device, and QoS data and filters for specific test conditions. Metrics are calculated using conditional aggregation and approximation functions to handle null values.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 5

SELECT

Location_Region,
Device_SIMBrandClassification,
APPROX_QUANTILES(
IF
(QOS_DownloadThroughput IS NOT NULL
AND QOS_DownloadThroughputTestSize = 2097152
AND QOS_UploadThroughput IS NOT NULL
AND QOS_UploadThroughputTestSize = 1048576
AND (QOS_LatencyMin IS NOT NULL
OR QOS_ICMPLatencyMin IS NOT NULL)
AND QOS_JitterAverage IS NOT NULL
AND QOS_PacketLossLostPercentage IS NOT NULL,
QOS_DownloadThroughput,
NULL), 10000 IGNORE NULLS) [
OFFSET
(5000)] AS MEDIAN_DownloadThroughput,
COUNT(
IF
(QOS_DownloadThroughput IS NOT NULL
AND QOS_DownloadThroughputTestSize = 2097152
AND QOS_UploadThroughput IS NOT NULL
AND QOS_UploadThroughputTestSize = 1048576
AND (QOS_LatencyMin IS NOT NULL
OR QOS_ICMPLatencyMin IS NOT NULL)
AND QOS_JitterAverage IS NOT NULL
AND QOS_PacketLossLostPercentage IS NOT NULL,
QOS_DownloadThroughput,
NULL)) AS COUNT_DownloadThroughput,
APPROX_QUANTILES(
IF
(QOS_DownloadThroughput IS NOT NULL
AND QOS_DownloadThroughputTestSize = 2097152
AND QOS_UploadThroughput IS NOT NULL
AND QOS_UploadThroughputTestSize = 1048576
AND (QOS_LatencyMin IS NOT NULL
OR QOS_ICMPLatencyMin IS NOT NULL)
AND QOS_JitterAverage IS NOT NULL
AND QOS_PacketLossLostPercentage IS NOT NULL,
QOS_UploadThroughput,
NULL), 10000 IGNORE NULLS) [
OFFSET
(5000)] AS MEDIAN_UploadThroughput,
COUNT(
IF
(QOS_DownloadThroughput IS NOT NULL
AND QOS_DownloadThroughputTestSize = 2097152
AND QOS_UploadThroughput IS NOT NULL
AND QOS_UploadThroughputTestSize = 1048576
AND (QOS_LatencyMin IS NOT NULL
OR QOS_ICMPLatencyMin IS NOT NULL)
AND QOS_JitterAverage IS NOT NULL
AND QOS_PacketLossLostPercentage IS NOT NULL,
QOS_UploadThroughput,
NULL)) AS COUNT_UploadThroughput,
APPROX_QUANTILES(
IF
(QOS_DownloadThroughput IS NOT NULL
AND QOS_DownloadThroughputTestSize = 2097152
AND QOS_UploadThroughput IS NOT NULL
AND QOS_UploadThroughputTestSize = 1048576
AND (QOS_LatencyMin IS NOT NULL
OR QOS_ICMPLatencyMin IS NOT NULL)
AND QOS_JitterAverage IS NOT NULL
AND QOS_PacketLossLostPercentage IS NOT NULL,
QOS_LatencyMin,
NULL), 10000 IGNORE NULLS) [
OFFSET
(5000)] AS MEDIAN_Latency,
COUNT(
IF
(QOS_DownloadThroughput IS NOT NULL
AND QOS_DownloadThroughputTestSize = 2097152
AND QOS_UploadThroughput IS NOT NULL
AND QOS_UploadThroughputTestSize = 1048576
AND (QOS_LatencyMin IS NOT NULL
OR QOS_ICMPLatencyMin IS NOT NULL)
AND QOS_JitterAverage IS NOT NULL
AND QOS_PacketLossLostPercentage IS NOT NULL,
QOS_LatencyMin,
NULL)) AS COUNT_Latency,
AVG(
IF
(QOS_DownloadThroughput IS NOT NULL
AND QOS_DownloadThroughputTestSize = 2097152
AND QOS_UploadThroughput IS NOT NULL
AND QOS_UploadThroughputTestSize = 1048576
AND (QOS_LatencyMin IS NOT NULL
OR QOS_ICMPLatencyMin IS NOT NULL)
AND QOS_JitterAverage IS NOT NULL
AND QOS_PacketLossLostPercentage IS NOT NULL,
QOS_JitterAverage,
NULL)) AS AVG_Jitter,
COUNT(
IF
(QOS_DownloadThroughput IS NOT NULL
AND QOS_DownloadThroughputTestSize = 2097152
AND QOS_UploadThroughput IS NOT NULL
AND QOS_UploadThroughputTestSize = 1048576
AND (QOS_LatencyMin IS NOT NULL
OR QOS_ICMPLatencyMin IS NOT NULL)
AND QOS_JitterAverage IS NOT NULL
AND QOS_PacketLossLostPercentage IS NOT NULL,
QOS_JitterAverage,
NULL)) AS COUNT_Jitter,
AVG(
IF
(QOS_DownloadThroughput IS NOT NULL
AND QOS_DownloadThroughputTestSize = 2097152
AND QOS_UploadThroughput IS NOT NULL
AND QOS_UploadThroughputTestSize = 1048576
AND (QOS_LatencyMin IS NOT NULL
OR QOS_ICMPLatencyMin IS NOT NULL)
AND QOS_JitterAverage IS NOT NULL
AND QOS_PacketLossLostPercentage IS NOT NULL,
QOS_PacketLossLostPercentage,
NULL)) AS AVG_PacketLoss,
COUNT(
IF
(QOS_DownloadThroughput IS NOT NULL
AND QOS_DownloadThroughputTestSize = 2097152
AND QOS_UploadThroughput IS NOT NULL
AND QOS_UploadThroughputTestSize = 1048576
AND (QOS_LatencyMin IS NOT NULL
OR QOS_ICMPLatencyMin IS NOT NULL)
AND QOS_JitterAverage IS NOT NULL
AND QOS_PacketLossLostPercentage IS NOT NULL,
QOS_PacketLossLostPercentage,
NULL)) AS COUNT_PacketLoss,

100 * SAFE_DIVIDE(SUM(CASE
WHEN QOS_DownloadThroughput > 5000
AND QOS_DownloadThroughputTestSize = 2097152
AND QOS_UploadThroughput > 1500
AND QOS_UploadThroughputTestSize = 1048576
AND (QOS_LatencyMin < 50 OR QOS_ICMPLatencyMin < 50)
AND QOS_JitterAverage < 30
AND QOS_PacketLossLostPercentage < 1.0
AND (QOS_DownloadThroughputTimeToFirstByte < 3200 OR
QOS_DownloadThroughputTimeToFirstByte IS NULL) THEN 1.00
ELSE
NULL
END
),
SUM(CASE
WHEN QOS_DownloadThroughput IS NOT NULL
AND QOS_DownloadThroughputTestSize = 2097152
AND QOS_UploadThroughput IS NOT NULL
AND QOS_UploadThroughputTestSize = 1048576
AND (QOS_LatencyMin IS NOT NULL OR QOS_ICMPLatencyMin IS NOT NULL)
AND QOS_JitterAverage IS NOT NULL AND QOS_PacketLossLostPercentage IS NOT
NULL THEN 1.00
ELSE
NULL
END
)) * SAFE_DIVIDE(COUNT(
CASE
WHEN (Device_SDKVersion NOT LIKE '4.%'
AND Device_SDKVersion NOT LIKE '5.%')
AND QOS_DownloadThroughputTestSize = 2097152
AND QOS_UploadThroughputTestSize = 1048576
AND QOS_DownloadThroughputTestStatus = 'COMPLETED'
AND QOS_ServerResponseTestStatus = 'COMPLETED' THEN 1
END
) *1.000,
COUNT(
CASE
WHEN (Device_SDKVersion NOT LIKE '4.%'
AND Device_SDKVersion NOT LIKE '5.%')
AND QOS_DownloadThroughputTestSize = 2097152
AND QOS_UploadThroughputTestSize = 1048576 AND
QOS_DownloadThroughputTestStatus IN ('COMPLETED', 'TIMEOUT', 'DNS_ERROR',
'REMOTE_CONNECTION_FAILURE', 'TIMEOUT_CONNECTING_TO_REMOTE', 'READ_EXCEPTION')
AND QOS_ServerResponseTestStatus IN ('COMPLETED', 'TIMEOUT', 'DNS_ERROR',
'SOCKET_OPEN_FAILURE', 'SEND_PACKET_ERROR', 'READ_PACKET_ERROR',
'READ_PACKET_TIMEOUT', 'INVALID_BYTE_COUNT') THEN 1
END
)) AS ExcellentConsistentQuality,
100 * SAFE_DIVIDE(SUM(CASE
WHEN QOS_DownloadThroughput > 1500
AND QOS_DownloadThroughputTestSize = 2097152
AND QOS_UploadThroughput > 500
AND QOS_UploadThroughputTestSize = 1048576
AND (QOS_LatencyMin < 100 OR QOS_ICMPLatencyMin < 100)
AND QOS_JitterAverage < 50
AND QOS_PacketLossLostPercentage <= 5.0
AND (QOS_DownloadThroughputTimeToFirstByte < 10670 OR
QOS_DownloadThroughputTimeToFirstByte IS NULL) THEN 1.00
ELSE
NULL
END
),
SUM(CASE
WHEN QOS_DownloadThroughput IS NOT NULL
AND QOS_DownloadThroughputTestSize = 2097152
AND QOS_UploadThroughput IS NOT NULL
AND QOS_UploadThroughputTestSize = 1048576
AND (QOS_LatencyMin IS NOT NULL OR QOS_ICMPLatencyMin IS NOT NULL)
AND QOS_JitterAverage IS NOT NULL AND QOS_PacketLossLostPercentage IS NOT
NULL THEN 1.00
ELSE
NULL
END
)) * SAFE_DIVIDE(COUNT(
CASE
WHEN (Device_SDKVersion NOT LIKE '4.%'
AND Device_SDKVersion NOT LIKE '5.%')
AND QOS_DownloadThroughputTestSize = 2097152
AND QOS_UploadThroughputTestSize = 1048576
AND QOS_DownloadThroughputTestStatus = 'COMPLETED'
AND QOS_ServerResponseTestStatus = 'COMPLETED' THEN 1
END
) *1.000,
COUNT(
CASE
WHEN (Device_SDKVersion NOT LIKE '4.%'
AND Device_SDKVersion NOT LIKE '5.%')
AND QOS_DownloadThroughputTestSize = 2097152
AND QOS_UploadThroughputTestSize = 1048576
AND QOS_DownloadThroughputTestStatus IN ('COMPLETED', 'TIMEOUT',
'DNS_ERROR', 'REMOTE_CONNECTION_FAILURE', 'TIMEOUT_CONNECTING_TO_REMOTE',
'READ_EXCEPTION')
AND QOS_ServerResponseTestStatus IN ('COMPLETED', 'TIMEOUT', 'DNS_ERROR',
'SOCKET_OPEN_FAILURE', 'SEND_PACKET_ERROR', 'READ_PACKET_ERROR',
'READ_PACKET_TIMEOUT', 'INVALID_BYTE_COUNT') THEN 1
END
)) AS CoreConsistentQuality

FROM (
SELECT
main.Device_UID AS Device_UID,
Device_SDKVersion,
Device_SIMBrandClassification,
Connection_GenerationCategory,
main.Location_Country,
Location_Region,
QOS_Date,
QOS_UploadThroughput,
QOS_UploadThroughputTestSize,
QOS_DownloadThroughput,
QOS_DownloadThroughputTimeToFirstByte,
QOS_DownloadThroughputTestStatus,
QOS_DownloadThroughputTestSize,
QOS_LatencyMin,
QOS_JitterAverage,
QOS_PacketLossLostPercentage,
QOS_ServerResponseTestStatus,
QOS_ICMPLatencyMin,

FROM
-- PROJECT NAME, COUNTRY and VIEW LENGTH for the appropriate location in the
customer's BigQuery project
`<PROJECT NAME>.Standard_US.<COUNTRY>_<VIEW LENGTH>` AS main
--- Common Coverage Areas
INNER JOIN
-- PROJECT NAME & COUNTRY for the appropriate location in the customer's
BigQuery project
`<PROJECT NAME>.Standard_US.<COUNTRY>_CommonCoverageAreas_*` AS CommonCoverage
ON
main.Location_Geohash7 = CommonCoverage.Location_Geohash7
--- Sample Balancing
LEFT JOIN
-- PROJECT NAME,COUNTRY, REPORT LENGTH and DATE for the appropriate location in
the customer's BigQuery project,
`<PROJECT NAME>.Standard_US.<COUNTRY>_SampleBalancing_<REPORT LENGTH>_<REPORT
DATE>` AS SampleBalancing
ON
FORMAT_TIMESTAMP("%Y-%m", QOS_Date) = SampleBalancing.QOS_TestMonth
WHERE
Connection_GenerationCategory IN ('3G',
'4G',
'5G')
--Include only data before original report creation date
AND DATE(main.Meta_CreatedDate) BETWEEN 'YYYY-MM-01' AND 'YYYY-MM-07'
AND DATE(QOS_Date) BETWEEN 'YYYY-MM-01' AND 'YYYY-MM-DD'
-- List of national operators for the country
AND Device_SIMBrandClassification IN ('OPERATOR 1', 'OPERATOR 2', 'OPERATOR 3')
AND Device_UID <= Device_UIDThreshold)
GROUP BY
Location_Region,
Device_SIMBrandClassification
ORDER BY
Location_Region,
Device_SIMBrandClassification

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy