Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Wert eines Datensatzes in einer Gruppe ausschließen, wenn ein anderer vorhanden ist v2

Sie könnten meine vorherige Antwort und endet damit:

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
;

Es gibt eine Live-Demo bei SQL Fiddle .