Übrigens geht das auch klassisch:

Code:
select * from (
  Select F1, f2, Count(*) Count0, 
    from x
    Group By F1, F2
) a
cross join lateral (
  select count(*) Count1 
   from x
   where a.f1 = x.f1 and a.f2 = x.f2
)
Der Inner group by liefert

10 A B
14 A C

der Join verknüüft einzeln A,B => count 10 und A,C => Count 14

Wenn du lateral join nicht magst, gehts auch mit scalarem subselect:

Code:
select a.* 
  , ( select count(*)
        from x
        where a.f1 = x.f1 and a.f2 = x.f2
    ) Count1
from (
  Select F1, f2, Count(*) Count0, 
    from x
    Group By F1, F2
) a
Der join lateral ist wie ein scalarer Subselect zu sehen, der allerdings auch mehr als 1 Spalte liefern kann.