Причина простая. Лапша вместо кода. Это и не позволяет понять, что есть что.
Отформатируем:
with AAA(A) as (
select 1 union
select 2 union
select 3 union
select 4 union
select 5
)
select 'А01' as "id",
1 as "sensor",
generate_series('2021-07-01 00:00:00', '2021-07-31 23:59:59', '10 sec'::interval) as "time",
t.status[floor(random()* 4 + 1)::int]
from (select array_agg(distinct AAA.A) as "status" from AAA ) as t ,
round((random()* 400 - 200)::numeric, 2) as "value"
Теперь сразу видно, что
value не является полем выходного набора. Это алиас синтетической таблицы в секции
FROM.
PS. За логику и даже просто за синтаксическую корректность я так и вовсе молчу...