Я изо всех сил пытаюсь найти примеры функции PL/R, которая может принимать две таблицы postgres. PL/R docs не дает такого примера.
Чтобы иметь рабочие примеры, рассмотрим возможность использования слияния двух таблиц postgres на стороне R.Функция PL/R, принимающая две таблицы в качестве аргументов
Имея две таблицы в Postgres
CREATE TABLE x (a numeric, b text);
CREATE TABLE y (a numeric, d text);
INSERT INTO x VALUES (1, 'a'),(2, 'b');
INSERT INTO y VALUES (2, 'b'),(3, 'c');
Я ищу заменить следующий запрос
SELECT * FROM x INNER JOIN y ON x.a=y.a;
С помощью функции PL/R, определенной в R, как:
my_function = function(x, y){
merge(x, y, by = "a")
}
Я смог вызвать функцию PL/R, которая принимает одну таблицу, но не две.
Это невозможно в (postgres) SQL, вам просто нужен динамический SQL: сгенерируйте SQL-запрос, который использует имена таблиц и столбцов, и выполните этот запрос, возвращая результирующие строки.(форма 'by =" a '' форма передачи параметров, вероятно, должна быть немного изменена) – wildplasser