As Larnu recommends:
MERGE target_table
USING (SELECT * FROM source_table WHERE somedatecolumn > DATEADD(year,-1,getutcdate())) x
ON merge_condition
WHEN MATCHED
THEN update_statement
WHEN NOT MATCHED
THEN insert_statement
The source table that drives a merge is the only data that will be invovled in the merge. If source_table has 1000 rows, but only 10 from the past year, then the MERGE will operate over 10 rows. If the destination table has 10000 rows, and 7 of these rows match those in the 10 rows from the source, 7 updates will be made and 3 inserts will be made. The destination table will have 10003 rows at the end of the operation