Tutela ReportRecreation Template 1 Regional
Tutela ReportRecreation Template 1 Regional
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