sql query using analytic functions
I believe this is what you are looking for, using a window function:

select name, 
    id, 
    attr1, 
    attr2, 
    max(data_date) over (partition by id) as maxdata_date 
from table1


Results:

name    id  attr1   attr2   maxdata_date
a       1   sals    ksdjf   2018-05-25
b       1   laskd   lskd    2018-05-25
c       2   klss    kjfe    2018-03-20
d       2   aow     lww     2018-03-20


http://sqlfiddle.com/#!18/109b5/1