У меня есть таблица DB postgres, которая отслеживает ежеквартальное событие, ежеквартальную дату события и стоимость. Каждое событие имеет не менее 5 кварталов информации, некоторые события имеют 8 и более кварталов.SQL-запрос, возвращающие строки на основе числа записей даты
образца Таблица
EventA | 2013-01-01 | 500 EventA | 2013-04-01 | 600 EventA | 2013-07-01 | 700 EventA | 2013-10-01 | 700 EventA | 2014-01-01 | 750 EventB | 2013-01-01 | 400 EventB | 2013-04-01 | 500 EventB | 2013-07-01 | 600 EventB | 2013-10-01 | 600 EventB | 2014-01-01 | 575 EventB | 2014-04-01 | 700 EventB | 2014-07-01 | 750 EventB | 2014-10-01 | 800 EventB | 2015-01-01 | 800 EventB | 2015-04-01 | 840
Я хотел бы быть в состоянии сделать следующее с помощью запроса. Если событие имеет 6 или менее строк, верните строку первой четверти и последнюю. Если событие имеет 7 и более кварталов, верните последнюю четверть строки (последняя дата) и 6-й квартал назад. I.e., если событие имеет 3 года информации, 12 кварталов, я бы хотел увидеть 12-й квартал и 6-й квартал.
Я знаю, как использовать функцию окон, чтобы возвращать подсчет квартала по событию и использовать вспомогательный запрос для получения результатов на основе количества кварталов события, то есть менее 6 или больше, чем 10. После этого я застрял. Я думаю, что мне нужно будет взять эти результирующие наборы и объединить их, чтобы вернуть строки, которые мне нужны, но не знаю, как это сделать.
Так Выборочные данные, возвращаемые из выше примера будет
EventA | 2013-01-01 | 500 EventA | 2014-01-01 | 750 EventB | 2013-10-01 | 600 EventB | 2015-04-10 | 840
Заранее спасибо
Отсутствует: версия Postgres, определение таблицы, запрос, который вы пробовали. –