Есть ли способ удалить и вернуть значение подзапроса - PullRequest
0 голосов
/ 26 апреля 2018

Я хочу иметь возможность вернуть значение подзапроса и удалить определенные записи.В частности, я хочу удалить из следующей таблицы, только если ни одна из записей не имеет 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?

...