Página 1 de 1

Vários COUNTS no mesmo SELECT

Enviado: Qui, 15 Jul 2004 8:36 am
por tfg
Olá pessoal

Estou acostumado a fazer assim:

Selecionar tudo

SELECT COUNT(campo)
FROM tabela
WHERE etc.etc.etc
Tem como fazer vários counts de coisas diferentes num único SELECT?

Enviado: Qui, 15 Jul 2004 8:41 am
por dr_gori
Pode sim!! Vamos testar no SCOTT:

Selecionar tudo

SQL> select empno, ename, job, sal, comm from emp;

     EMPNO ENAME      JOB              SAL       COMM
---------- ---------- --------- ---------- ----------
      7369 SMITE      CLERK            800
      7499 ALLEN      SALESMAN        1600        300
      7521 WARD       SALESMAN        1250        500
      7566 JONES      MANAGER         2975
      7654 MARTIN     SALESMAN        1250       1400
      7698 BLAKE      SALESMAN        2850
      7788 SCOTT      ANALYST         2000
      7844 TURNER     SALESMAN        1500          0
      7876 ADAMS      CLERK           1100
      7900 JAMES      CLERK            999
      7902 FORD       ANALYST         2000

11 rows selected.

SQL> select 
  2    count( case when sal>=2000 then 1 end)        Salario_maior_3000,
  3    count( case when comm is not null then 1 end) Quantos_tem_comissao,
  4    count( case when job='SALESMAN' then 1 end)   Quantos_Salesman
  5  from emp
  6  /

SALARIO_MAIOR_3000 QUANTOS_TEM_COMISSAO QUANTOS_SALESMAN
------------------ -------------------- ----------------
                 4                    4                5

SQL> 
:-o