У нас есть company_employee_count
таблица отслеживания сотрудников по кварталам. В таблице есть столбец для подсчета предыдущего квартала, чтобы быстро определить кварталы, в которых количество сотрудников увеличилось или уменьшилось по сравнению с предыдущим кварталом. Теперь нам нужно написать запрос SQL, чтобы найти компании, которые последовательно увеличивали количество сотрудников за последние N кварталов. то есть, если мы пройдем четыре квартала кварталов 2019_Q1, 2019_Q2, 2019_Q3, 2019_Q4, мы хотим получить компании, у которых employee_count
во всех четырех кварталах и текущий счетчик квартала больше, чем в предыдущем квартале.
TABLE company_employee_count{
company_id
employee_count
quarter (Stored as 2019_Q1, 2019_Q2)
prev_quarter_employee_count
}
Мы используете postgresql. В настоящее время я использую такой запрос, в котором есть данные JOIN для данных за каждый квартал.
select * from
(select employee_count,company_id from company_employee_count where quarter='2019_Q4') as q4_19
inner join
(select employee_count,company_id from company_employee_count where quarter='2019_Q3') as q3_19
on q4_19.company_id=q3_19.company_id
inner join
(select employee_count,company_id from company_employee_count where quarter='2019_Q2') as q2_19
on q2_19.company_id=q3_19.company_id
inner join
(select employee_count,company_id from company_employee_count where quarter='2019_Q1') as q1_19
on q2_19.company_id=q1_19.company_id
where
q4_19.employee_count > q3_19.employee_count and
q3_19.employee_count > q2_19.employee_count and
q2_19.employee_count > q1_19.employee_count
Я хочу не подключаться к квартальным данным и иметь возможность каким-либо образом использовать prev_quarter_employee_count
.
Ценить любые помощь / предложения.