Oracle
 sql >> Base de données >  >> RDS >> Oracle

Exclure la valeur d'un enregistrement dans un groupe si un autre est présent v2

Vous pouvez légèrement modifier ma réponse précédente et finir avec ceci :

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
;

Il y a une démo en direct chez SQL Fiddle .