У меня есть следующая схема:
name | hire_date | last_date | active
n1 | January 20, 2018, 12:00 AM | | true
n2 | October 1, 2018, 12:00 AM | February 18, 2020, 12:00 AM | false
n3 | October 15, 2018, 12:00 AM | | true
n4 | January 12 2019, 12:00 AM | | true
n5 | February 12, 2019, 12:00 AM | | true
n6 | December 12, 2019, 12:00 AM | January 15, 2020, 12:00 AM | false
n7 | February 17, 2020, 12:00 AM | | true
Мне нужно извлечь месячный счет из общего числа active
сотрудников.
Я пытаюсь соединить таблицу с самим собой и получить количество строк, но не знаю, как поступить:
select
-- ot1.name, ot2.name, ot1.hire_date, ot2.hire_date, ot1.last_date, ot2.last_date,
date_trunc('month', ot1.hire_date) AS hire_dates, count(ot1.hire_date)
from ops_teammates ot1
join ops_teammates ot2 ON ot1.hire_date >= ot2.hire_date
group by hire_dates
order by ot1.hire_date, ot2.hire_date;
Как узнать количество, например
Jan 2018, 1
Oct 2018, 3
Jan 2019, 4
Feb 2019, 5
Dec 2019, 6
Jan 2020, 5
Feb 2020, 5