Exercícios SQL

Exercício 1 Crie uma instrução que retorne media, numero de filhos e grau de instrução dos funcionários cujo salrio hora for maior que a media de todos os salarios, retorne somente os funcionarios da capital, casados e em ordem decrescente de idade.


select round(avg(idade)), numero_filhos, grau_instrucao 
from rh."TB_FUNC" 
where reg_procedencia='capital'
and estado_civil='casado'
and salario_hora > (select avg(salario_hora)from rh."TB_FUNC")
group by numero_filhos, grau_instrucao 
order by round(avg(idade)) desc ;

Exercício 2  Retorne todos os funcionários com 2 filhos
select * from rh."TB_FUNC" where numero_filhos = '2' ;

ou 

select * from rh."TB_FUNC" where cast (numero_filhos as integer) = 2;

Exercício 3 
Acrescentando mais uma tabela Endereço 


TABELA
CREATE TABLE cap16."TB_ENDERECO"
(
    "id_end" integer NOT NULL,
    "rua" character varying(30),
    "numero" character varying(30),
    "bairro" character varying(30),
    "cep" character varying(10),
    "estado" character varying(30),
    "pais" character varying(30),
    "id_func" integer,
    PRIMARY KEY ("id_end")
)

TABLESPACE pg_default;

ALTER TABLE cap16."TB_ENDERECO"
    OWNER to postgres;


INSERT INTO cap16."TB_ENDERECO"(
"id_end", "rua", "numero", "bairro", "cep", "estado", "pais", "id_func")
VALUES (1001, 'Jaguar', 40, 'Tijuca', '24239-900', 'Rio de Janeiro', 'Brasil', 2);
INSERT INTO cap16."TB_ENDERECO"(
"id_end", "rua", "numero", "bairro", "cep", "estado", "pais", "id_func")
VALUES (1002, 'Mercedes Benz', 140, 'Centro', '12098-900', 'Minas Gerais', 'Brasil', 6);

INSERT INTO cap16."TB_ENDERECO"(
"id_end", "rua", "numero", "bairro", "cep", "estado", "pais", "id_func")
VALUES (1003, 'BMW', 20, 'Tijuca', '23232-900', 'Rio de Janeiro', 'Brasil', 3);
INSERT INTO cap16."TB_ENDERECO"(
"id_end", "rua", "numero", "bairro", "cep", "estado", "pais", "id_func")
VALUES (1004, 'Ferrari', 32, 'Centro', '99872-900', 'Minas Gerais', 'Brasil', 11);

INSERT INTO cap16."TB_ENDERECO"(
"id_end", "rua", "numero", "bairro", "cep", "estado", "pais", "id_func")
VALUES (1005, 'McLaren', 45, 'Centro', '43982-900', 'Minas Gerais', 'Brasil', 17);

A) Retorne a media de salario hora por estado

select round(avg (f.salario_hora)), e.estado
from rh."TB_FUNC" f, rh."TB_ENDERECO" e
where f.id = e.id_func
group by e.estado






Comentários

Postagens mais visitadas