Last active
June 9, 2019 04:06
-
-
Save sofakingworld/fbbc166a6fcf00836883335546868a14 to your computer and use it in GitHub Desktop.
Incomes
This file contains 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
;WITH incomes as ( | |
-- группируем по часу, сразу считаем количество проходов | |
SELECT date_part as , count(*) | |
FROM | |
(SELECT | |
DATE_PART('hour', started.created_at) date_part, | |
ROW_NUMBER() OVER (PARTITION BY started.id) rn | |
FROM sensor_triggers started | |
JOIN sensor_triggers ended | |
-- Проверяем, что срабатывание между датчиками < 5 секунд | |
ON ended.created_at - started.created_at BETWEEN '00:00:00'::time AND '00:00:05'::time | |
-- Определяем, от какого к какому сенсерому ведем отсчет | |
AND started.sensor_id = 1 AND ended.sensor_id = 2 | |
-- В данном случае считаем количество "приходящих" | |
-- посетителей (от датчика 1 к датчику 2) | |
) as temporally | |
-- Если у датчика 2 были лжесрабатывания, то при джойне | |
-- будут лишние записи, для этого, поэтому мы ввели подсчет | |
-- номера строки в группе, т.к. нам достаточно получить | |
-- первую запись в группировке | |
WHERE rn = 1 | |
GROUP BY date_part | |
) | |
SELECT * FROM incomes; | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment