【发布时间】:2021-02-08 04:15:50
【问题描述】:
假设我已经有 2 个表格,其中包含电影及其收视率。
CREATE TABLE public.movies (
movieid int4 NOT NULL,
averagerating float4 NULL,
title varchar(255) NOT NULL,
"year" int4 NULL,
CONSTRAINT movies_pkey PRIMARY KEY (movieid)
);
CREATE TABLE public.ratings (
movie_id int4 NOT NULL,
user_id int4 NOT NULL,
rating float4 NOT NULL,
timestmp varchar(255) NOT NULL,
CONSTRAINT ratings_pkey PRIMARY KEY (movie_id, user_id),
CONSTRAINT fk44trpo3u915t27ybt03ib4h0o FOREIGN KEY (movie_id) REFERENCES movies(movieid),
CONSTRAINT fk7ymub8kd95i2xlklgole3i684 FOREIGN KEY (user_id) REFERENCES usrs(userid)
);
目前movies中的averagerating列到处都是空的。我想将我的 UDF average_movie_rating 附加到此列
类似update movies set averagerating = average_movie_rating(movies.movieid)
这个函数:
create or replace function average_movie_rating(movieid integer)
returns float8 as $averagerating$
declare
averagerating float8;
begin
select avg(r.rating) into averagerating from ratings r where r.movie_id = $1;
return averagerating;
end
$averagerating$ language plpgsql;
有可能吗?如果可以,我如何将这个 movieid 传递给函数?
【问题讨论】:
标签: sql postgresql sql-update user-defined-functions