sql – agrupar cada periodo por mes

Estou fazendo essa consulta, porem não estou conseguindo agrupar cada período por mês, do ano anterior

  • Para cada mês do ano anterior ao ano corrente, retornar a quantidade de carros estacionados por período (de 00:00 a 07:59, 08:00 a 15:59 e 16:00 a 23:59)

select
ent_datahora_entrada as mes, veiculos as periodo , count(*)
from (
select

   to_char(ent_datahora_entrada, 'dd/mm/yyyy hh24:mi') ent_datahora_entrada 
    
  , case when to_char(ent_datahora_entrada, 'hh24:mi')>='00:00'
          and to_char(ent_datahora_entrada, 'hh24:mi')<='07:59' then '0 as 8'
         when to_char(ent_datahora_entrada, 'hh24:mi')>='08:00'
          and to_char(ent_datahora_entrada, 'hh24:mi')<='15:59' then '8 as 16'
         when to_char(ent_datahora_entrada, 'hh24:mi')>='16:00'
          and to_char(ent_datahora_entrada, 'hh24:mi')<='23:59' then '16 as 0'
         
    end veiculos
  from entradas_saidas
 
 )

group by ent_datahora_entrada, veiculos

;
esta saindo assim.
12/01/0020 09:26 8 as 16 1
14/01/0020 11:26 8 as 16 1
19/01/0020 16:26 16 as 0 1
28/01/0020 01:26 0 as 8 1
17/02/0020 21:26 16 as 0 1
01/03/0020 10:26 8 as 16 1
10/03/2019 16:00 16 as 0 1
12/04/2019 16:00 16 as 0 1
19/04/2019 16:00 16 as 0 1

mas o que preciso é que agrupe todas as datas do mês, exemplo : 01/01/19 ate 01/02/19 p/ todos os meses
8 as 16 5
16 as 00 10
00 as 8 7