Использование group by в postgREST - PullRequest
       22

Использование group by в postgREST

0 голосов
/ 22 сентября 2019

Я новичок в Postgres и postgREST.Мне нужно было бы получать различные записи из одного столбца - в идеале с возможностью фильтрации.

Задача, которую мне нужно решить, находится в SQL

select distinct "column1" where "column2" = "value2 and "column3" = "value3 "

column1, column2, colum3 и значения должны быть параметрами вызова REST.

в postgREST Мне, вероятно, понадобится использовать функцию или хранимую процедуру, но я новичок в этом.

Можете ли вы помочь

1 Ответ

0 голосов
/ 27 сентября 2019

Я бы пошел с созданием трех ВИДОВ:

CREATE VIEW table_dist_column1 AS
  SELECT
    DISTINCT ON(column1)
    column1
  , column2
  , column3
  FROM table;

CREATE VIEW table_dist_column2 AS
  SELECT
    DISTINCT ON(column2)
    column1
  , column2
  , column3
  FROM table;

-- Analogously:
-- CREATE VIEW table_dist_column3 AS ....

Тогда можно было бы использовать фильтры PostgREST обычным образом (например, curl "<url>/table_dist_column1?column1=eq.baz&column2=eq.foo&column3=eq.bar").

Это также возможно сделатьс одной хранимой процедурой plpgsql с динамическим sql (используя quote_ident).Но я бы не рекомендовал это, поскольку это может быть опасно для конечных пользователей.

Так что ВИДЫ - лучший вариант.

...