SlideShare uma empresa Scribd logo
1 - Qual são as principais diferenças e premissas entre JOIN (SQL) e MERGE
(DATA STEP) ?
2 – Escreva dois códigos de relacionamento, um usando JOIN (SQL) e o outro
MERGE (SAS).
Obs. Campo chave = ID.
Obs2. Trazer o campo id e o NOME da tabela1.
Obs3. LEFT JOIN
PS. Tabelasnão ordenada.
Estrutura das tabelassegue abaixo:
/* Estrutura das Tabelas:
Tabela1
Campo: ID - NUMERICO(2)
NOME - CHAR(30);
Tabela2
Campo: ID -CHAR(2)
NOME - CHAR(30);
Estrutura das Tabelas*/
3 – Faça o esqueleto de dois código para ordenar uma tabela e remover as
chaves duplicadas (SQL e SAS ).
Tabela: Table_chaves
Campo Chave: CPF
4 – Efetuar melhorias nos códigos Abaixo (Usar macro quando for
necessário).
A) /*CADA TABELA CONTEM UMA MEDIA DE 180 MILHÕES DE
REGISTROS.*/
data table_melhoria;
set table_precaria;
if campo = 1 AND MISSING(CAMPOX) then receba = 31;
if campo = 4 AND MISSING(CAMPOX) then receba = 31;
if campo = 0 AND NOT(MISSING(CAMPOX)) then receba = 45;
if campo = 2 AND NOT(MISSING(CAMPOX))then receba = 22;
if campo = 7 AND NOT(MISSING(CAMPOX))then receba = 3120;
if campo = 9 AND MISSING(CAMPOX) then receba = 21;
if campo = 5 AND MISSING(CAMPOX) then receba = 45;
if campo = 3 AND NOT(MISSING(CAMPOX))then receba = 12;
if campo = 6 AND MISSING(CAMPOX) then receba = 31;
run;
B) /*CADA TABELA CONTEM UMA MEDIA DE 180 MILHÕES DE
REGISTROS.*/
PROCSQL;
CREATE TABLE TABLE_MELHORIA_2 AS
SELECT *
FROM CLIENTES
INNER JOIN VENDAS ON CLIENTES.CPF = VENDAS.CPF
LEFT JOIN ESTOQUE ON ESTOQUE.ID_PRODUTO = VENDAS.ID_PRODUTO
WHERE CLIENTES.ATIVO = 'SIM'
;RUN;
C) NULL
PROC SORT DATA=T1; BY ID; RUN;
PROC SORT DATA=T2; BY ID; RUN;
PROC SORT DATA=T3; BY ID; RUN;
PROC SORT DATA=T4; BY ID; RUN;
PROC SORT DATA=T5; BY ID; RUN;
PROC SORT DATA=T6; BY ID; RUN;
PROC SORT DATA=T7; BY ID; RUN;
PROC SORT DATA=T8; BY ID; RUN;
5- Desenvolva o código abaixo em maneiras diferentes.
Ex: data step, univariate, etc...
PROC SQL;
CREATE TABLE SOMA AS
SELECT TIPO, SUM(VALOR) AS SUM_VALOR
FROM TABLE_VALORES
GROUP BY 1
;RUN;
6- Efetue uma macro que vai fazer cálculos aritméticos (+ - * /), o cliente vai
passar 3 parâmetros.
7- Desenvolva uma MACRO que faça as seguintes ações.
A MACRO vai acessar uma biblioteca que vai ser especificada pelo o usuário e
vai listar todos as tabelas que contem nesta biblioteca, com este resultado vai
fazer uma amostra de 100 observações para cada tabela, alocando as
mesmas em uma biblioteca temporária(WORK).
A macro precisa ser dinâmica para que não seja necessário a interversão
humana posteriormente.
BOA SORTE

Mais conteúdo relacionado

Destaque

Proyecto de ciencias HERNANDEZ SANDOVAL IRVING #23 3-B
Proyecto de ciencias   HERNANDEZ SANDOVAL IRVING #23  3-BProyecto de ciencias   HERNANDEZ SANDOVAL IRVING #23  3-B
Proyecto de ciencias HERNANDEZ SANDOVAL IRVING #23 3-B
irvingf
 
oct-2016-Prem-ProfessionalProfile
oct-2016-Prem-ProfessionalProfileoct-2016-Prem-ProfessionalProfile
oct-2016-Prem-ProfessionalProfile
Prem Bist
 

Destaque (12)

Introducing to stimulants
Introducing to stimulantsIntroducing to stimulants
Introducing to stimulants
 
Narayanan
NarayananNarayanan
Narayanan
 
Proyecto de ciencias HERNANDEZ SANDOVAL IRVING #23 3-B
Proyecto de ciencias   HERNANDEZ SANDOVAL IRVING #23  3-BProyecto de ciencias   HERNANDEZ SANDOVAL IRVING #23  3-B
Proyecto de ciencias HERNANDEZ SANDOVAL IRVING #23 3-B
 
La complejidad de la materia
La complejidad de la materiaLa complejidad de la materia
La complejidad de la materia
 
Sermon Slide Deck: "The Cornerstone of Life" (Luke 20:9-19)
Sermon Slide Deck: "The Cornerstone of Life" (Luke 20:9-19)Sermon Slide Deck: "The Cornerstone of Life" (Luke 20:9-19)
Sermon Slide Deck: "The Cornerstone of Life" (Luke 20:9-19)
 
Firma Mich Walschaerts legt opnieuw sterk boekjaar neer
Firma Mich Walschaerts legt opnieuw sterk boekjaar neerFirma Mich Walschaerts legt opnieuw sterk boekjaar neer
Firma Mich Walschaerts legt opnieuw sterk boekjaar neer
 
F.O.Xデータ抽出基盤をクラウド移行した話
F.O.Xデータ抽出基盤をクラウド移行した話F.O.Xデータ抽出基盤をクラウド移行した話
F.O.Xデータ抽出基盤をクラウド移行した話
 
とらのあなエンジニア採用イベント 2017年2月9日
とらのあなエンジニア採用イベント 2017年2月9日とらのあなエンジニア採用イベント 2017年2月9日
とらのあなエンジニア採用イベント 2017年2月9日
 
Eletroeletrônica Básica - A estrutura do átomo
Eletroeletrônica Básica - A estrutura do átomoEletroeletrônica Básica - A estrutura do átomo
Eletroeletrônica Básica - A estrutura do átomo
 
oct-2016-Prem-ProfessionalProfile
oct-2016-Prem-ProfessionalProfileoct-2016-Prem-ProfessionalProfile
oct-2016-Prem-ProfessionalProfile
 
Royecto finalizado
Royecto finalizadoRoyecto finalizado
Royecto finalizado
 
帰ってきた Delphi
帰ってきた Delphi帰ってきた Delphi
帰ってきた Delphi
 

Semelhante a PROVA SAS

Exercícios de mysql
Exercícios de mysqlExercícios de mysql
Exercícios de mysql
Leo Frazão
 
Codificando e-magazine11
Codificando e-magazine11Codificando e-magazine11
Codificando e-magazine11
Marcos Paulo
 
Clp allen bralley aula 04
Clp allen bralley aula 04Clp allen bralley aula 04
Clp allen bralley aula 04
MAKILL
 

Semelhante a PROVA SAS (20)

Curso de PostgreSQL: Um pouco Além dos Comandos
Curso de PostgreSQL: Um pouco Além dos ComandosCurso de PostgreSQL: Um pouco Além dos Comandos
Curso de PostgreSQL: Um pouco Além dos Comandos
 
Aula 11 banco de dados
Aula 11   banco de dadosAula 11   banco de dados
Aula 11 banco de dados
 
Aula 11 banco de dados
Aula 11   banco de dadosAula 11   banco de dados
Aula 11 banco de dados
 
Microcontroladores PIC.pptx
Microcontroladores PIC.pptxMicrocontroladores PIC.pptx
Microcontroladores PIC.pptx
 
Aula 300309
Aula 300309Aula 300309
Aula 300309
 
Aulas_SQL.pdf
Aulas_SQL.pdfAulas_SQL.pdf
Aulas_SQL.pdf
 
Exercícios de mysql
Exercícios de mysqlExercícios de mysql
Exercícios de mysql
 
Workshop Microchip Curiosity Board
Workshop Microchip Curiosity BoardWorkshop Microchip Curiosity Board
Workshop Microchip Curiosity Board
 
Codificando e-magazine11
Codificando e-magazine11Codificando e-magazine11
Codificando e-magazine11
 
Tradutor de Pig Latin
Tradutor de Pig LatinTradutor de Pig Latin
Tradutor de Pig Latin
 
Pro2 15p
Pro2 15pPro2 15p
Pro2 15p
 
UFCD-6072-Microcontroladores-Registos.pptx
UFCD-6072-Microcontroladores-Registos.pptxUFCD-6072-Microcontroladores-Registos.pptx
UFCD-6072-Microcontroladores-Registos.pptx
 
Anexo c
Anexo cAnexo c
Anexo c
 
Rs logix 5000
Rs logix 5000Rs logix 5000
Rs logix 5000
 
Armazenagem asi port
Armazenagem asi portArmazenagem asi port
Armazenagem asi port
 
Curso de Certificação Linux LPI - Terminal Root
Curso de Certificação Linux LPI - Terminal RootCurso de Certificação Linux LPI - Terminal Root
Curso de Certificação Linux LPI - Terminal Root
 
Sql - Introdução ao mysql
Sql - Introdução ao mysqlSql - Introdução ao mysql
Sql - Introdução ao mysql
 
Python 04
Python 04Python 04
Python 04
 
Clp allen bralley aula 04
Clp allen bralley aula 04Clp allen bralley aula 04
Clp allen bralley aula 04
 
Aula04
Aula04Aula04
Aula04
 

PROVA SAS

  • 1. 1 - Qual são as principais diferenças e premissas entre JOIN (SQL) e MERGE (DATA STEP) ? 2 – Escreva dois códigos de relacionamento, um usando JOIN (SQL) e o outro MERGE (SAS). Obs. Campo chave = ID. Obs2. Trazer o campo id e o NOME da tabela1. Obs3. LEFT JOIN PS. Tabelasnão ordenada. Estrutura das tabelassegue abaixo: /* Estrutura das Tabelas: Tabela1 Campo: ID - NUMERICO(2) NOME - CHAR(30); Tabela2 Campo: ID -CHAR(2) NOME - CHAR(30); Estrutura das Tabelas*/ 3 – Faça o esqueleto de dois código para ordenar uma tabela e remover as chaves duplicadas (SQL e SAS ). Tabela: Table_chaves Campo Chave: CPF 4 – Efetuar melhorias nos códigos Abaixo (Usar macro quando for necessário). A) /*CADA TABELA CONTEM UMA MEDIA DE 180 MILHÕES DE REGISTROS.*/ data table_melhoria; set table_precaria; if campo = 1 AND MISSING(CAMPOX) then receba = 31; if campo = 4 AND MISSING(CAMPOX) then receba = 31; if campo = 0 AND NOT(MISSING(CAMPOX)) then receba = 45; if campo = 2 AND NOT(MISSING(CAMPOX))then receba = 22; if campo = 7 AND NOT(MISSING(CAMPOX))then receba = 3120; if campo = 9 AND MISSING(CAMPOX) then receba = 21; if campo = 5 AND MISSING(CAMPOX) then receba = 45; if campo = 3 AND NOT(MISSING(CAMPOX))then receba = 12; if campo = 6 AND MISSING(CAMPOX) then receba = 31; run;
  • 2. B) /*CADA TABELA CONTEM UMA MEDIA DE 180 MILHÕES DE REGISTROS.*/ PROCSQL; CREATE TABLE TABLE_MELHORIA_2 AS SELECT * FROM CLIENTES INNER JOIN VENDAS ON CLIENTES.CPF = VENDAS.CPF LEFT JOIN ESTOQUE ON ESTOQUE.ID_PRODUTO = VENDAS.ID_PRODUTO WHERE CLIENTES.ATIVO = 'SIM' ;RUN; C) NULL PROC SORT DATA=T1; BY ID; RUN; PROC SORT DATA=T2; BY ID; RUN; PROC SORT DATA=T3; BY ID; RUN; PROC SORT DATA=T4; BY ID; RUN; PROC SORT DATA=T5; BY ID; RUN; PROC SORT DATA=T6; BY ID; RUN; PROC SORT DATA=T7; BY ID; RUN; PROC SORT DATA=T8; BY ID; RUN; 5- Desenvolva o código abaixo em maneiras diferentes. Ex: data step, univariate, etc... PROC SQL; CREATE TABLE SOMA AS SELECT TIPO, SUM(VALOR) AS SUM_VALOR FROM TABLE_VALORES GROUP BY 1 ;RUN; 6- Efetue uma macro que vai fazer cálculos aritméticos (+ - * /), o cliente vai passar 3 parâmetros. 7- Desenvolva uma MACRO que faça as seguintes ações. A MACRO vai acessar uma biblioteca que vai ser especificada pelo o usuário e vai listar todos as tabelas que contem nesta biblioteca, com este resultado vai fazer uma amostra de 100 observações para cada tabela, alocando as mesmas em uma biblioteca temporária(WORK). A macro precisa ser dinâmica para que não seja necessário a interversão humana posteriormente. BOA SORTE