我不知道如何在 postgresql 中编写存储过程。我试图写一个,但我得到了错误的输出。
create or replace function getUserId() returns setof integer as
$BODY$
Declare r integer;cnt integer;
BEGIN
for r in select distinct user_id from system_audit
loop
for cnt in select count(*) from system_audit where user_id=r
loop
return next cnt;
end loop;
return next r;
end loop;
return;
end;
$BODY$
language 'plpgsql';
当我通过键入以下内容检查输出时:-
select * from getUserId()
我得到这个作为输出: -
58 173 920 106 76 191 14413 1 2 242 1320 -1 2 249 1167 192 2 233 70 98 229 193 45 237 49 103 49 103 45735 115 115 115 10 2015 10 201 28 167 308 96 1211 110 7 172 7 172 7 172 7 172 7 172 7 1314 22 225 13 235 7 199 14 88 23566 118 359 4 9 231 98 165 174 212 21 149 14 105 77 97 416 180 1345 23 59 152 297 239 37 197 133 144
输出是正确的但问题是这是作为一个单列出现的,其中包含两列的输出 - user_id 和 count。我想将我的输出视为两列,一列用于计数,另一列用于 user_id。请帮我找到解决方案。
提前致谢!