Как выбрать последнюю запись по имени и дате?
Можно в подзапросе найти максимальные идентификаторы для каждого имени, а затем просто выбрать данные по ним:
SELECT *
FROM salary 
WHERE id IN (SELECT MAX(id) FROM salary GROUP BY name);
SELECT *
FROM
  (SELECT id,
          name,
          salary,
          period-start,
          period-end,
          row_number() OVER (PARTITION BY name ORDER BY id DESC) AS rn
   FROM your_table
   WHERE period-start = ...
     AND period-end = ...)
WHERE rn = 1
Только вместо * надо перечислить нужные поля в реальном запросе.