У меня есть представление, которое усредняет некоторые статистические данные путем усреднения последних строк относительно в текущей внешней строке. Подумайте о среднем уровне ватин для каждого предыдущего в летучей мыши для каждого теста. Это работает, как хотелось бы, но я хотел бы больше контроля над old_foo.datesВыбор сгруппированного условия в сводном запросе
Мнения идеализированные запрос выглядит так:
create view myview as
select
avg(old_foo.stuff),
foo.person_id,
foo.date_ as this_date
from
foo,
join (select stuff, person_id, date_ from foo) as old_foo
on old_foo.date_ < foo.date_
group by person_id, this_date
;
Но я бы очень хотел, чтобы быть в состоянии минимальный набор old_foo.date из вид, чтобы я мог создать произвольно скользящие средние на лету.
Такие, как:
select * from myview where mindate > now()::date - 10
(MinDate фиктивно, так как я потерял его с группой по)
Я знаю, что могу сделать это с помощью функции, но я предпочел бы не слишком. Будет ли CTE давать мне больше гибкости с тем, что я хочу?
редактировать
Я не могу привести oldate столбец верхнего уровня зрения без группировки его (это не то, что я хочу.) Я хочу, чтобы вид быть вообще, так что я мог бы так же, как легко сделать 10-дневную скользящую среднюю как 20-дневную или любую дату, которую я бы хотел. Старые даты во внутреннем запросе, поэтому я не имею доступа к нему, как только создаю представление.
Я не хочу жестко кодировать условие в представлении. – 2010-11-23 01:35:16