Retrieve a count from a one-to-many relationship even if there are no rows at the "many"-end of the relationship
Try

select 
  C.id
, count( CL.company_id ) likes_count
from companies C
  left join company_likes CL on C.id = CL.company_id 
group by C.id 
order by C.id ;


See dbfiddle (Postgres 9.6).

-- test tables and data
create table companies ( id int4 primary key ) ;

insert into companies ( id ) values (1),(2),(3),(4);

select * from companies ;

id
1
2
3
4

create table company_likes (
  company_id int4 references companies( id )
);

insert into company_likes ( company_id ) values (1),(4),(4),(4),(4) ;

select * from company_likes ;

company_id
1
4
4
4
4


Query

select 
  C.id
, count( CL.company_id ) likes_count
from companies C
  left join company_likes CL on C.id = CL.company_id 
group by C.id 
order by C.id ;

id  likes_count
1   1
2   0
3   0
4   4