Я предполагаю, что вы хотите distinct on
:
SELECT DISTINCT ON (back_str, ahead_str, substr(weather_case, 1, 4)) v.*
FROM a_import.veg v
ORDER BY back_str, ahead_str, substr(weather_case, 1, 4), min_dist;
(выберите столбцы, которые вы действительно хотите.)
На самом деле, Postgres теперь поддерживает LEFT()
, так что вы можете сократить это до:
SELECT DISTINCT ON (back_str, ahead_str, LEFT(weather_case, 4)) v.*
FROM a_import.veg v
ORDER BY back_str, ahead_str, LEFT(weather_case, 4), min_dist;