Loops 多循环和/或迭代
我正在尝试将EXECUTE循环到rowcnt。我是按年份分组的,需要为每个记录插入。我成功地循环了For rec,但在mc_id=2的情况下,每个表只插入1行Loops 多循环和/或迭代,loops,sql-insert,plpgsql,Loops,Sql Insert,Plpgsql,我正在尝试将EXECUTE循环到rowcnt。我是按年份分组的,需要为每个记录插入。我成功地循环了For rec,但在mc_id=2的情况下,每个表只插入1行 RETURNS void LANGUAGE plpgsql AS $$ DECLARE rec RECORD; rec2 RECORD; sch text; tbl text; fld text; qry text; rowcnt RECORD; BEGIN FOR rec IN SELECT
RETURNS void
LANGUAGE plpgsql
AS $$
DECLARE
rec RECORD;
rec2 RECORD;
sch text;
tbl text;
fld text;
qry text;
rowcnt RECORD;
BEGIN
FOR rec IN SELECT * FROM AUDIT.AUDIT_METRIC_DEFINITIONS WHERE metric_class_id = mc_id
LOOP
sch = quote_ident(rec.schema_name);
fld = quote_ident(rec.field_name);
tbl = quote_ident(rec.schema_name)||'.'||quote_ident(rec.table_name);
qry := 'select extract(year from '||fld||') as yr, count(*) as cnt from '|| tbl ||' group by 1';
EXECUTE qry into rowcnt;
INSERT INTO AUDIT.AUDIT_METRIC_DATA(metric_id,level,value,run_date) values(rec.metric_id,tbl||'.'||fld||'.'||rowcnt.yr,rowcnt.cnt,current_date);
END LOOP;
END
$$; ```
表现出的行为与您想要实现的行为有何不同?我能够循环查看rec记录集。但是,对于我查询的每个表,我希望插入年份和记录计数。正如现在所写的,每个表只插入一条来自rowcnt的记录,而不是每个表每年插入一条记录。我需要一个额外的循环来插入rowcnt中按年份分组的每条记录。希望有意义