В качестве альтернативы используйте этот синтаксис:
SELECT SUM(peak_power)
FROM t_mpi_pv
WHERE info_id IN
(
SELECT mp_info_id
FROM t_mp
WHERE mp_id = ANY(ARRAY[29800001,29800008,29800015,29800022,29800029])
)
Полезно, если вы передаете массив в виде одной связанной переменной или параметра функции:
CREATE FUNCTION fn_peak_power (mpids INT[])
AS
$$
SELECT SUM(peak_power)
FROM t_mpi_pv
WHERE info_id IN
(
SELECT mp_info_id
FROM t_mp
WHERE mp_id = ANY($1)
);
$$
LANGUAGE 'sql';