Last active
August 12, 2024 16:55
-
-
Save firstDismay/ea04464708a9862be41ab8a3f16c1cfc to your computer and use it in GitHub Desktop.
Функция скважной выборки с шагом по времени на основе генератора серии
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Использование оконных функций для выборки по интервалам времени | |
Мы можем использовать оконные функции для группировки данных по определенному интервалу времени и затем выбрать начало каждого | |
такого интервала. Это позволит нам получить данные с заданным интервалом времени, например, каждые 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