The query is quite peculiar because the two parts look the same, but I guess you left someting out.
You can use
from ( select TEST_ID ,COUNT(*) as BEGINNER_COUNT from myModule.Table1 TTM where APPROVAL_DATE is not null group by TEST_ID ) b
inner join
(select TEST_ID ,COUNT(*) as LEARNER_COUNT from myModule.Table1 TTM where APPROVAL_DATE is not null group by TEST_ID ) l
on l.TEST_ID=b.TEST_ID
select b.TEST_ID TESTID,
b.BEGINNER_COUNT BCOUNT,
l.LEARNER_COUNT LCOUNT