It looks like a procedural problem. I would solve it in plpgsql.
pgsql-sql by date:
Соглашаюсь с условиями обработки персональных данных