это запрос, который я превышаю:
CREATE OR REPLACE FUNCTION alphabetloop ()
RETURNS RECORD AS $$
DECLARE
counter INTEGER := 64 ;
hsl text := 'select 1';
hasil RECORD;
hasile RECORD;
i INTEGER := 0 ;
j INTEGER := 1 ;
BEGIN
LOOP
EXIT WHEN counter = 90 ;
counter := counter + 1 ;
SELECT j, i + j INTO i, j ;
select concat(hsl,concat(' union all select count(*) FROM public.table_name where field_name like ''',(concat(chr(counter),'%''')))) into hsl;
END LOOP ;
for hasil in EXECUTE hsl
loop
select hasil into hasile;
RAISE NOTICE '% : %', chr(counter),hasil;
END LOOP ;
RETURN hasile;
END ;
$$ LANGUAGE plpgsql;
select alphabetloop();
вывод данных: ("(13911)")
вывод сообщения:
ВНИМАНИЕ: Z: (1)
УВЕДОМЛЕНИЕ: Z: (3411)
УВЕДОМЛЕНИЕ: Z: (446)
...
УВЕДОМЛЕНИЕ: Z: (13)
Успешно бежать.Общее время выполнения запроса: 52 с 47 мс.Затронуты 1 строка.
есть ли способ вернуть вывод данных в виде:
A |(1)
B |(3411)
C |(446)
D |(166)
...
Z |(13) * * тысяча тридцать-дв