У меня есть SQL ниже, что позволяет получить среднее значение интервала столбца метки времени, сгруппированного по icao_address, flight_number, flight_date. Я пытаюсь сделать то же самое для стандартного отклонения, и хотя я получаю цифру, это неправильно. Стандартное отклонение, которое я получаю, составляет 14,06 (посмотрите на изображение ниже), тогда как оно должно быть около 1,8.
Ниже приведено то, что я использую для расчета stddev.
STDDEV_POP(UNIX_SECONDS(timestamp))as standard_deviation
Ниже мой SQL
#standardSQL
select DATE(timestamp) as flight_date, safe_divide(timestamp_diff(max(timestamp), min(timestamp),SECOND), (COUNT(DISTINCT(timestamp)) - 1))as avg_interval_message, STDDEV_POP(UNIX_SECONDS(timestamp))as standard_deviation,
icao_address, flight_number, min(timestamp) as firstrecord, max(timestamp) as lastrecord, count(timestamp) as target_updates
from `ais-data-analysis._analytics._aoi_table`
group by icao_address, flight_number, flight_date
having avg_interval_message is not null and flight_number is not null and icao_address = '4B8E41'
order by flight_date, avg_interval_message ASC
Столбец метки времени - это то, что я пытаюсь получить стандартное отклонение, интервалов между ними, это 10 записей