sql >> Databáze >  >> RDS >> Oracle

Jak funguje součet s podmíněným příkazem case v sql

Pravděpodobně je to část, kterou se snažíte pochopit:

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

Toto je opravdu jednoduchý agregační dotaz. Dotaz dělá:

  • Podívejte se na každý řádek v employees
  • Pokud jobname je 'Analyst' pak přiřaďte hodnotu 1 (toto je case výpis. Otherwise, assign a value of 0`.
  • Agregujte podle oddělení sečtením právě vypočítané hodnoty. To má za následek počítání počtu analytiků.

case je výraz, který vrací hodnotu. sum() jednoduše sčítá tuto hodnotu pro každou skupinu.



  1. Aktualizujte formulář Apex Tabular pomocí PLSQL

  2. Oprávnění EXECUTE bylo odepřeno pro objekt 'xxxxxxx', databázi 'zzzzzzzz', schéma 'dbo'

  3. Má to vliv na výkon, pokud tabulka obsahuje mnoho nepoužívaných/nevybraných sloupců?

  4. Chyba #1054 neznámý sloupec v klauzuli