sql >> Database >  >> RDS >> Oracle

SQL-query met CASE en groeperen op

Het klinkt alsof je iets wilt als

SELECT f.id,
       (CASE WHEN open_bugs = 0 
             THEN 'PASS'
             ELSE 'FAIL'
         END) feature_status,
       open_bugs,
       closed_bugs
  FROM (SELECT f.id,
               SUM( CASE WHEN b.status IN (0,1)
                         THEN 1
                         ELSE 0
                     END) open_bugs,
               SUM( CASE WHEN b.status = 2
                         THEN 1
                         ELSE 0
                     END) closed_bugs
          FROM feature f
               JOIN bugs b ON (f.id = b.feature_id)
         GROUP BY f.id)


  1. Postgres-impasses bij gelijktijdige upserts

  2. Instanties van unieke waarde tellen in veld

  3. Hoe sequentienamen voorvoegen?

  4. Hoe vind je verschillende kolommen in een geneste subquery in SQL?