sql >> Base de Datos >  >> RDS >> Oracle

Excluir el valor de un registro en un grupo si hay otro presente v2

Podría modificar ligeramente mi respuesta anterior y terminar con esto:

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
;

Hay una demostración en vivo en SQL Fiddle .