Я хочу иметь возможность вернуть значение подзапроса и удалить определенные записи.В частности, я хочу удалить из следующей таблицы, только если ни одна из записей не имеет used = True
, а также вернуть количество используемых записей.
csv_files
----------|-------
filename | used | somevalue |
-------------------------------
test.csv | t | 67
-------------------------------
test.csv | f | 92
-------------------------------
test.csv | f | 92
-------------------------------
Я пришел со следующим:
with used_count as (
select count(used)
from csv_files
where filename ='test.csv'
and used = 't'
), delete as (
delete from csv_files
where filename = 'test.csv'
and (select count from used_count) = 0
)
select count
from used_count;
count
-------
1
(1 row)
Есть ли более простой способ сделать это в Postgres?