Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Excluir valor de um registro em um grupo se outro estiver presente v2


Você pode modificar ligeiramente minha resposta anterior e termine com isso:
SELECT
  mark,
  sum(amount) AS sum_amount
FROM atable t
WHERE mark <> 'A'
  OR NOT EXISTS (
    SELECT *
    FROM atable
    WHERE id = t.id
      AND mark = 'C'
  )
GROUP BY
  mark
;

Há uma demonstração ao vivo no SQL Fiddle .