[PDF] [PDF] STT1682 – Progiciels en Statistique et Actuariat Cours 8 – PROC SQL

SAS a créé une procédure appelé le PROC SQL très puissante utilisant une À travers un PROC SQL, nous serons CREATE TABLE BASESORTANTE AS qu'on a réussit à lier de BASE2, on va effectuer un LEFT JOIN représenté par le 



Previous PDF Next PDF





[PDF] SUGI 25: Merges and Joins - SAS Support

In PROC SQL two or more data sets may be vertically CREATE TABLE DATA99 AS SELECT * An 'inner' join is a logical AND of the two tables and



[PDF] 035-2009: Exploring PROC SQL Joins and Join - SAS Support

The SQL procedure is a simple and flexible tool for joining tables of data together When it comes to performing PROC SQL joins, users supply the names of the tables for joining along with the join CREATING A CARTESIAN PRODUCT



[PDF] Proc SQL, the Data Step Killer - SAS

Proc SQL query can join only two datasets at a time (although inner joins without the Although it says create table, it is actually creating a SAS dataset • PROC 



[PDF] Etape Data (Merge) ou SAS SQL (Join)?? - Amin Guerss

❖Si les tables ne contiennent pas les mêmes noms de variables, l'étape data ne peut pas être utilisée (possibilité d'utiliser proc SQL) ❖S'assurer qu'il n'y a 



[PDF] Using Data Step MERGE and Proc SQL JOIN to Combine SAS

sources and create a convenient store of information in one location is one of the best Whether you merge data via the SAS data step or you join data via PROC properly performing different types of joins in SQL (inner vs outer join, left vs



[PDF] PROC SQL Tips and Techniques - LexJansen

Proc SQL; create table/view newdsname as select var1, var2, varN Unlike ' regular' SAS procedures and Data steps, SQL likes commas In DATA step terms, an inner join on two incoming datasets is equivalent to using a MERGE 



[PDF] STT1682 – Progiciels en Statistique et Actuariat Cours 8 – PROC SQL

SAS a créé une procédure appelé le PROC SQL très puissante utilisant une À travers un PROC SQL, nous serons CREATE TABLE BASESORTANTE AS qu'on a réussit à lier de BASE2, on va effectuer un LEFT JOIN représenté par le 



[PDF] Procédure SQL de SAS

Commandes proc sql ; alter table déclaration de modification ; Page 2 2 Procédure SQL de SAS create table déclaration de création ; delete décl- 



[PDF] PROC SQL VS DATA STEP PROCESSING AGENDA • Comparison

Joining SAS data using the DATA Step and PROC SQL Many times a series of 2-table joins Create tables, views, and indexes on columns in tables • Create 



[PDF] SUGI 26: Joining SAS(r) and DBMS Tables Efficiently - BeOptimized

libname dbms db2 dsn=tvdb uid=helf pwd=mypw; proc SQL; create table History as select * from Warranty a, dbms MfgHist (dbkey=sn) b

[PDF] sas proc sql create table like

[PDF] sas proc sql create table replace

[PDF] sas proc sql create table syntax

[PDF] sas proc sql format

[PDF] sas proc sql; create table as select example

[PDF] sas retain array

[PDF] sas sum(of array name * )

[PDF] sascrunch arrays

[PDF] sassen cities in a world economy pdf

[PDF] sassen the global city new york london tokyo

[PDF] sat interventions

[PDF] sat practice test 1

[PDF] sat practice test 1 answers

[PDF] sat practice test 10 answers

[PDF] sat practice test 5

STT1682 - Progiciels en Statistique et Actuariat

Cours 8 - PROC SQL

IntroLe language SQL (Structured Query Language) est un language utilisé à travers plusieurs applications pour extraire/modifier de l'information entre des bases/tables relationelles.

SAS a créé une procédure appelé le PROC SQL très puissante utilisant une syntaxe et une logique

similaire au language SQL, mais adapté au language SAS. À travers un PROC SQL, nous serons

capable de repliquer la majorité des traitements et procédures appris jusqu'à présent dans ce

cours.

Syntaxe

Étant donné la quantité élevé de traitement possible avec un PROC SQL, nous verrons une syntaxe

simplifié à travers ce cour :

PROC SQL;

CREATE TABLE BASESORTANTE AS

SELECT VAR1 as VAR1_new format=..., VAR2 as VAR2_new format=..., ...

FROM BASEENTRANTE

WHERE CONDITIONS

GROUP BY VAR1, VAR2,...

ORDER BY VAR1, VAR2,...;

QUIT; Note - L'ordre des déclarations est importante.

- Selon vos besoins, plusieurs des étapes peuvent être tout simplement enlevés. Seulement le

SELECT et FROM sont obligatoires.

- À noter que des virgules seront utilisés pour séparés les différentes variables

CREATE TABLE

-Créer la table sortante, similaire à la déclaration DATA

SELECT

- À cette étape, nous devons lister les variables que nous désirons garder dans la base de donnée,

similaire à l'option KEEP. - À noter que * peut être utilisé pour garder toutes les variables. - L'option "as" peut être utilisé pour renommer une variable (optionel)

- Un format peut être créé pour chacune des variables en ajoutant format=... suivant la variable.

- Toutes nouvelles variables peut être créé à cette étape, il suffit d'écrire l'opération SAS pour la

définir et lui définir un nom suivant le "as"

David Langlois - notes STT1682 1

FROM

-Spécifie le nom de la (ou des) bases de données entrante en lecture, similaire à la déclaration SET

WHERE Étape pour effectuer des filtres à la lecture, similaire à l'option WHERE

GROUP BY

Étape pour spécifier le regroupement de variable par lequel on veut sommariser la base, similaire

à la déclaration CLASS dans un PROC SUMMARY

ORDER BY

Étape pour spécifier le trie voulu dans la base de donnée sortante, similaire à la déclaration BY

d'un PROC SORT. Pour trier de façon décroissante, la variable devra être suivit de l'option "desc"

Exemple #1 - Création de Base

DATA BASE1;

x=1;y=1;OUTPUT; x=2;y=1;OUTPUT; x=3;y=1;OUTPUT; RUN;

PROC SQL;

CREATE TABLE EXEMPLE1 AS

SELECT *, (x+y) as z format=8.1

FROM BASE1

WHERE x<3

ORDER BY X desc;

QUIT;

Sommarisation de Base

À l'aide d'un PROC SQL, il sera possible de sommariser plusieurs observations des variables et d'extraire diverses variables statistiques (somme,maximum...) similaire à ce que faisait un PROC

SUMMARY .

Cependant, une différence majeure est qu'avec un PROC SQL, nous pouvons aussi calculer ces variables statistiques sommaires sans nécessairement sommariser la base de donnée.

Cela implique que nous pourrons utiliser ces variables statistiques calculés à partir de plusieurs

observations avec les valeurs de chacune de ces observations. Par exemple, en un seul PROC SQL, il sera possible de calculer pour chacune des observations le

ratio de VAR1 par rapport à la somme de toutes les valeurs VAR1, ce qui n'était précedemment pas

possible à faire en une seule étape.

Les mêmes variables statistiques que celles utilisés dans le PROC SUMMARY pourront être utilisés

à l'intérieur d'un PROC SQL soit : SUM(), MEAN(), MAX(), MIN(), N(), STD()...

David Langlois - notes STT1682 2

Exemple #2 - Sommarisation de Base

PROC SQL;

CREATE TABLE EXEMPLE2 AS

SELECT SUM(X) AS SUM_X

FROM BASE1

GROUP BY Y;

QUIT; Exemple #3 - Variable Statistique sans Sommarisation

PROC SQL;

CREATE TABLE EXEMPLE3 AS

SELECT *, SUM(X) AS SUM_X

FROM BASE1;

QUIT;

Liaison de Base de Données

Il est aussi possible de lier plusieurs bases de données entre-elles à l'aide d'un PROC SORT. Le PROC

SORT va aussi permettre des conditions de liaisons beaucoup plus complexes que celles utilisés avec la déclaration MERGE ou l'option INDEX.

Liaison par défaut

Par défaut le PROC SQL va tenter de faire un produit cartésien des différentes tables. En d'autres

mots, il va produire toutes les combinaisons différentes possibles de chacune des variables des différentes bases de données.

Exemple #4 - Liaison de Base

DATA BASE1;

x=1;y=2;OUTPUT; x=2;y=3;OUTPUT; RUN;

DATA BASE2;

x=2;z=5;OUTPUT; x=3;z=6;OUTPUT; x=4;z=9;OUTPUT; RUN;

PROC SQL;

CREATE TABLE EXEMPLE4 AS

SELECT *

FROM BASE1,BASE2;

QUIT;

David Langlois - notes STT1682 3

INNER JOIN

À l'aide de la déclaration WHERE, il sera possible de spécifier un filtre afin d'effectuer ce qu'on

appele un INNER JOI où le PROC SQL va seulement conserver les observations qu'il a réussit à lier

dans les deux bases de données. Voici l'information conservé représenté par le diagramme de

Venne ci-dessous :

ATTENTION, si la clé n'est pas unique, l'information va être dédoublé

Exemple #5 - Liaison de Base (INNER JOIN)

PROC SQL;

CREATE TABLE EXEMPLE5 AS

SELECT *

FROM BASE1,BASE2

WHERE BASE1.X=BASE2.X;/*A Cette etape on force SAS a conserver seulement les observations ou x de BASE1 est egale a X de BASE2 */ QUIT;

LEFT JOIN

Si à la place, on désire conserver toutes l'information de BASE1 et seulement ajouter l'information

qu'on a réussit à lier de BASE2, on va effectuer un LEFT JOIN représenté par le graphique ci-

dessous :

Exemple #6 - Liaison de Base (LEFT JOIN)

PROC SQL;

CREATE TABLE EXEMPLE6 AS

SELECT *

FROM BASE1 LEFT JOIN BASE2

ON BASE1.X=BASE2.X;*ON devra etre utiliser au lieu du WHERE; QUIT; Note : Le RIGHT JOIN existe aussi et produira le résultat inverse

David Langlois - notes STT1682 4

Liaisons Complexes

Finalement, il sera aussi possible de lier des bases de données avec des conditions de liaisons plus

complexes tel que des inégalités. Tout cela sera traité à travers la déclaration WHERE ou ON dans le

cas des LEFT/RIGHT join.

Exemple #7 - Liaison de Base (Complexe)

DATA BASE1;

x=1;y=10;OUTPUT; x=11;y=20;OUTPUT; x=21;y=30;OUTPUT; RUN;

DATA BASE2;

x=1;z=5;OUTPUT; x=11;z=5;OUTPUT; RUN;

PROC SQL;

CREATE TABLE EXEMPLE7 AS

SELECT *

FROM BASE1 LEFT JOIN BASE2

ON BASE1.X=BASE2.X

AND BASE2.Z LE BASE1.Y

AND BASE2.Z GE BASE1.X;

QUIT;

David Langlois - notes STT1682 5

quotesdbs_dbs17.pdfusesText_23