Something like this. If you already have a table B and you need to populate it with the values from this query, or if you need to create a new table B with these values, adapt as needed. NOTE: I used dt as a column name, since "date" is a reserved word in Oracle. (For the same reason I used "ct" for "count".)
with
     table_A (  id, dt, status ) as (
        select 1, to_date( '1/1/2000', 'mm/dd/yyyy'), 'Active'   from dual union all
        select 2, to_date('5/10/2007', 'mm/dd/yyyy'), 'Inactive' from dual union all
        select 2, to_date('2/15/2016', 'mm/dd/yyyy'), 'Active'   from dual union all
        select 3, to_date('10/1/2013', 'mm/dd/yyyy'), 'Inactive' from dual union all
        select 4, to_date('1/11/2004', 'mm/dd/yyyy'), 'Inactive' from dual union all
        select 5, to_date(' 4/5/2012', 'mm/dd/yyyy'), 'Inactive' from dual union all
        select 5, to_date('6/12/2014', 'mm/dd/yyyy'), 'Active'   from dual
     ),
     prep ( id, dt, status, rn, ct ) as (
       select id, dt, status,
              row_number() over (partition by id order by dt desc),
              count(*) over      (partition by id)
       from   table_A
     )
select id, to_char(dt, 'mm/dd/yyyy') as dt, status, ct
from   prep
where  rn = 1
;
        ID DT         STATUS           CT
---------- ---------- -------- ----------
         1 01/01/2000 Active            1
         2 02/15/2016 Active            2
         3 10/01/2013 Inactive          1
         4 01/11/2004 Inactive          1
         5 06/12/2014 Active            2
Added: You mentioned you are pretty new at this... so: for example, if you need to create table_B with these results, and table_A already exists and is populated:  FIRST, you will not need the "table_A" factored subquery in my solution; and SECOND, you will create table_B with something like
create table table_B as
with
     prep ( .....)   --  rest of the solution here, up to and including the ;