PL / R函数接受两个表作为参数
发布时间:2020-12-13 16:09:08 所属栏目:百科 来源:网络整理
导读:我很难找到一个可以接受两个postgres表的PL / R函数的例子. PL/R docs没有提供任何这样的例子. 要有一个工作示例,我们可以考虑在R端使用两个postgres表的合并. 在postgres有两张桌子 CREATE TABLE x (a numeric,b text);CREATE TABLE y (a numeric,d text);I
我很难找到一个可以接受两个postgres表的PL / R函数的例子.
PL/R docs没有提供任何这样的例子.
要有一个工作示例,我们可以考虑在R端使用两个postgres表的合并. 在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; 使用R中定义的PL / R函数: my_function = function(x,y){ merge(x,y,by = "a") } 我能够调用PL / R函数,它接受单个表,但不是两个. 解决方法
我不认为postgeql可以接受真实表作为参数.
但还有另一种方法可以做到这一点.您可以将表名称作为参数传递. CREATE OR REPLACE FUNCTION merge(t1 text,t2 text) returns setof x as BEGIN execute 'select * from ' || t1 ||' join ' || t2 || ' on t1.a=t2.a'; END 以上是postgresql的功能,它也可以写在R函数中. >我们必须将表x的所有值存储到变量x中.请参阅以下代码 x< -dbGetQuery(con,“SELECT * from sandbox.x”) - - 是连接到数据库的连接,sandbox是模式名称,x是表名 y< -dbGetQuery(con,“SELECT * from sandbox.y”) 总< - merge(x,by =“a”) myTotal< - function(x,y){ 我附上了步骤的截图供您参考 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |