SlideShare uma empresa Scribd logo
1 de 2
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

Introducing to stimulants
Introducing to stimulantsIntroducing to stimulants
Introducing to stimulantsCarl Gladwyn
 
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-Birvingf
 
La complejidad de la materia
La complejidad de la materiaLa complejidad de la materia
La complejidad de la materianuriainformatica
 
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)New City Church
 
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 neerThierry Debels
 
F.O.Xデータ抽出基盤をクラウド移行した話
F.O.Xデータ抽出基盤をクラウド移行した話F.O.Xデータ抽出基盤をクラウド移行した話
F.O.Xデータ抽出基盤をクラウド移行した話Genki Ishibashi
 
とらのあなエンジニア採用イベント 2017年2月9日
とらのあなエンジニア採用イベント 2017年2月9日とらのあなエンジニア採用イベント 2017年2月9日
とらのあなエンジニア採用イベント 2017年2月9日Junichi Noda
 
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 átomoNatanael Simões
 
oct-2016-Prem-ProfessionalProfile
oct-2016-Prem-ProfessionalProfileoct-2016-Prem-ProfessionalProfile
oct-2016-Prem-ProfessionalProfilePrem Bist
 
Royecto finalizado
Royecto finalizadoRoyecto finalizado
Royecto finalizadoJuan Bayona
 
帰ってきた Delphi
帰ってきた Delphi帰ってきた Delphi
帰ってきた DelphiTakumi Yamada
 

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 SQL vs DATA STEP

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 ComandosMarcos Thomaz
 
Microcontroladores PIC.pptx
Microcontroladores PIC.pptxMicrocontroladores PIC.pptx
Microcontroladores PIC.pptxfmtpereira
 
Exercícios de mysql
Exercícios de mysqlExercícios de mysql
Exercícios de mysqlLeo Frazão
 
Workshop Microchip Curiosity Board
Workshop Microchip Curiosity BoardWorkshop Microchip Curiosity Board
Workshop Microchip Curiosity BoardFabio Souza
 
Codificando e-magazine11
Codificando e-magazine11Codificando e-magazine11
Codificando e-magazine11Marcos Paulo
 
Tradutor de Pig Latin
Tradutor de Pig LatinTradutor de Pig Latin
Tradutor de Pig LatinElen Arantza
 
UFCD-6072-Microcontroladores-Registos.pptx
UFCD-6072-Microcontroladores-Registos.pptxUFCD-6072-Microcontroladores-Registos.pptx
UFCD-6072-Microcontroladores-Registos.pptxcentroclinicosalus
 
Armazenagem asi port
Armazenagem asi portArmazenagem asi port
Armazenagem asi portPablo Souza
 
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 RootMarcos Quinho
 
Sql - Introdução ao mysql
Sql - Introdução ao mysqlSql - Introdução ao mysql
Sql - Introdução ao mysqlArley Rodrigues
 
Clp allen bralley aula 04
Clp allen bralley aula 04Clp allen bralley aula 04
Clp allen bralley aula 04MAKILL
 

Semelhante a SQL vs DATA STEP (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
 
Aula04
Aula04Aula04
Aula04
 
Clp allen bralley aula 04
Clp allen bralley aula 04Clp allen bralley aula 04
Clp allen bralley aula 04
 

SQL vs DATA STEP

  • 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