Skip to content

Instantly share code, notes, and snippets.

@firstDismay
Last active August 12, 2024 16:55
Show Gist options
  • Save firstDismay/ea04464708a9862be41ab8a3f16c1cfc to your computer and use it in GitHub Desktop.
Save firstDismay/ea04464708a9862be41ab8a3f16c1cfc to your computer and use it in GitHub Desktop.
Функция скважной выборки с шагом по времени на основе генератора серии
Использование оконных функций для выборки по интервалам времени
Мы можем использовать оконные функции для группировки данных по определенному интервалу времени и затем выбрать начало каждого
такого интервала. Это позволит нам получить данные с заданным интервалом времени, например, каждые 10 секунд для часа или каждые
несколько минут для месяца.
Пример SQL запроса
Допустим, у нас есть таблица data_table с полями timestamp и value. Наша задача - выбрать данные, начиная с первого момента
каждого интервала времени, заданного пользователем.
WITH intervals AS (
SELECT
generate_series(
'your_start_timestamp'::timestamp,
'your_end_timestamp'::timestamp,
interval 'your_interval' second -- Замените 'your_interval' на нужный интервал, например, '10 seconds'
) AS time_point
),
filtered_data AS (
SELECT DISTINCT ON (time_point) *
FROM data_table
JOIN intervals ON data_table.timestamp >= intervals.time_point
ORDER BY intervals.time_point, data_table.timestamp
)
SELECT * FROM filtered_data;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment