Você está na página 1de 11

Linguagem SQL:

Group By

PROFESSOR: DÊNIS CAMURÇA


Criação de um novo banco

create table emp ( create table depto


cdemp integer not null, (cddepto character(1) not null,
nome varchar(6), nome varchar(12),

fone varchar(10), responsavel integer,


primary key (cddepto)
salario integer,
)
chefe integer,
depto character(1),
primary key (cdemp)
)
Criação de um novo banco
/* insere os registros */
insert into emp (cdemp, nome, fone, salario, depto) values (2, 'Silva', '2677', 30000, 'H');
insert into emp (cdemp, nome, fone, salario, chefe, depto) values (3, 'Cabral', '1088', 22000, 2, 'S');
insert into emp (cdemp, nome, fone, salario, chefe, depto) values (4, ‘Lobato’, '4590', 28000, 2, 'H');
insert into emp (cdemp, nome, fone, salario, chefe, depto) values (1, ‘OBilac’, '2688', 20000, 3, 'S');
insert into emp (cdemp, nome, fone, salario, chefe, depto) values (8, 'Maria', '2690', 25000, 4, 'C');
insert into emp (cdemp, nome, fone, salario, chefe, depto) values (9, 'Antune', '2698', 26000, 8, 'C');
insert into emp (cdemp, nome, fone, salario, chefe, depto) values (10, 'Petter', '2645', 22000, 8, 'C');

insert into depto (cddepto, nome, responsavel) values ('H', 'Sede', 2);
insert into depto (cddepto, nome, responsavel) values ('S', 'Seguranca', 3);
insert into depto (cddepto, nome, responsavel) values ('C', 'Computação', 8);
Criação de um novo banco

/* ativa as restrições de chave */


alter table emp add constraint emp_to_chefe foreign key
(chefe) references emp(cdemp);
alter table emp add constraint emp_to_dept foreign key
(depto) references depto (cddepto);
alter table depto add constraint depto_to_responsavel foreign
key (responsavel) references emp (cdemp);
Funções de agrupamento
básicas
 No SQL existem funções para agrupar e
resumir dados, são as funções de
agrupamento (ou agregação).

 As funções são utilizadas em conjunto com


três cláusulas
 SELECT, GROUP BY e HAVING.
Funções de agrupamento
básicas
Count(*)

 Count(*) contabiliza também linhas com


campos nulos, porém quando aplicamos
sobre uma coluna apenas, e.g., count(fone),
os valores nulos não são contados.
 Podemos também contar os valores distintos
com a cláusula DISTINCT.
 select count(*) from pessoa -> 5
 select count(fone) from pessoa -> 4
 select count(distinct fone) from pessoa -> 3
Sum, Max e Min

 O tipo de dados de uma coluna determina as


funções que podem ser usadas.
 SUM só pode ser usada com valores
numéricos.
 MAX e MIN podem também para valores
literais.
Sum, Max e Min
Sum, Max e Min

 No cálculo de uma média ou de uma soma os


valores nulos são ignorados.
 Por exemplo, na tabela temos 7 linhas, mas
só temos seis valores para chefe.
 Logo a média do chefe é 27/6=4.5.
Sum, Max e Min

 Seguem alguns exemplos para serem praticados.


 Note que podemos contar também às linhas que possuem alguma coluna com valor nulo.
select count(*) from pessoa where fone is null -> 1
select max(nome) from emp -> Silva
select min(nome) from emp -> Antune
select count(chefe) from emp -> 6
select avg(chefe) from emp -> 4.5

 Seguem mais alguns exemplos para serem praticados


select avg(salario) from emp;
select chefe, avg(salario) from emp group by chefe;
select chefe, sum(salario) from emp group by chefe;
select depto, avg(salario) from emp group by depto;
select depto, count(*) from emp group by depto;

Você também pode gostar