Przede wszystkim post WYJAŚNIJ ANALIZĘ na obu wariantach, abyśmy mogli zobaczyć. Pierwszy krok w ustaleniu, dlaczego jedno jest wolniejsze od drugiego. Przydatne może być również wyświetlenie całego zapytania.
Pierwszy wariant powinien dać się zoptymalizować.
Jeśli chodzi o to, aby użytkownik nie zmieniał zapytania w wielu miejscach, rozważ napisanie procedura składowana lub jeśli/kiedy pierwszy wariant zostanie zoptymalizowany, widok .
Edycja:Zauważyłeś, że twoja aktualna_data - '...'::interval zwróci znacznik czasu bez strefy czasowej. Zakładam, że zamiast tego chcesz przesyłać do daty:(current_date - '2 tygodnie'::interval)::date