Предполагая, что у вас есть все строки в таблице visits
, вы можете создать что-то вроде этого, сначала создав запрос, который выбирает первую дату, которую посетил каждый человек. Это легко сделать, используя:
SELECT name, MIN(date) AS date FROM visits GROUP BY name
Получив это, вы можете просто объединить результат с исходной таблицей. Тогда он будет использовать только те строки, которые имеют одинаковое имя и дату. Я решил использовать CTE, потому что за ним легче следовать:
WITH
first_day AS (SELECT name, MIN(date) AS date FROM visits GROUP BY name)
SELECT name, place, date
FROM first_day JOIN visits USING (name, date);