Для следующего запроса:
SELECT t_stamp, sum(t_diff) OVER(ORDER BY t_stamp) AS t_sum
FROM (
SELECT
t_stamp
, getdiffabove(t_stamp - lag(t_stamp) OVER(ORDER BY t_stamp),'1s') AS t_diff
FROM tstmp
) AS td
WHERE t_stamp >= (SELECT t_stamp FROM td WHERE t_diff > '0ms' ORDER BY t_stamp LIMIT 1)
Набор результатов из подзапроса td
содержит столбцы t_stamp
и t_diff
. Я пытаюсь отфильтровать набор результатов td
, чтобы удалить строки до первого значения t_diff
выше 0ms
. Я получаю ошибку:
ERROR: relation "td" does not exist
не могу ли я сослаться на td
в этой части запроса (предложение WHERE)? Как я могу это исправить?
Примечание. Я хочу избегать использования CTE из-за ограничений CTE в Postgres.
Набор результатов из подзапроса td
будет выглядеть следующим образом:
t_stamp | t_diff
-------------------------+--------------
2013-08-11 07:12:18.204 | 00:00:00
2013-08-11 07:12:18.455 | 00:00:00
2013-08-11 07:12:18.705 | 00:00:00
2013-08-11 07:13:10.82 | 00:00:51.865
2013-08-11 07:13:11.07 | 00:00:00
Я хочу отфильтровать этот набор результатов так, чтобы строки выше первого ненулевого значения t_diff отфильтровывались. То есть первые три строки в указанном выше наборе результатов будут отфильтрованы. И включающий запрос будет работать с отфильтрованным набором результатов.