MySQL
select * from my_table where id in (
select id from (select id, name, group_code, max(create_time) mt from my_table group by group_code) a
)
Oracle
select * from (
select t.*, row_number() over(partition by t.id order by t.create_time desc) as row_tag from my_table t
) temp where temp.row_tag = '1'