У меня есть таблица с большим количеством столбцов значений, которая выглядит следующим образом:
CREATE TABLE tbl ("timestamp" timestamp PRIMARY KEY, "a" real, "b" real, "c" real)
Таблица может содержать динамическое количество столбцов значений (например, a, b, c).
Мне нужно удалить строки, где все значения равны нулю, но отметка времени не равна нулю.
Я не могу создать запрос на выборку, который будет возвращать только нулевые строки.
Делать что-то вроде:
select *
from tbl
where tbl is null
не будет работать, поскольку отметка времени не равна нулю
Я попытался взять следующий рабочий пример:
select *
from tbl
where not (a,b,c) is null
и добавить к нему подвыбор:
select *
from tbl
where not (
SELECT string_agg(column_name, ',')
FROM information_schema.columns
WHERE table_name = 'tbl' and column_name != 'timestamp'
) is null
Но это не работает.