sql >> Database teknologi >  >> RDS >> Oracle

Hvordan sum med case betinget erklæring fungerer i sql

Formentlig er dette den del, du kæmper for at forstå:

  select deptno,
         sum(case when jobname = 'Analyst' then 1 else 0 end) as numAnalysts
  from employees
  group by deptno

Dette er virkelig en simpel aggregeringsforespørgsel. Det, forespørgslen gør, er:

  • Se på hver række i employees
  • Hvis jobname er 'Analyst' tildel derefter værdien 1 (dette er case erklæring. Otherwise, assign a value of 0`.
  • Aggregér efter afdeling, summer den netop beregnede værdi. Dette har den effekt, at man tæller antallet af analytikere.

case er et udtryk, der returnerer en værdi. sum() er simpelthen at lægge denne værdi sammen for hver gruppe.



  1. Returner oplysninger om operativsystemversion i SQL Server med sys.dm_os_host_info Dynamic Management View

  2. PHP og mysql indsætter ikke

  3. Sådan nulstiller du det automatiske stigningsnummer/-kolonne i en MySql-tabel

  4. Vælg de sidste N rækker fra MySQL