SQL voor SAS Programmeurs - Deel 1 - Extracting Data

14 april 2009 door: Blink 7

Het eerste deel van deze tutorial gaat over het gebruik van de PROC SQL statement naar basisgegevens extractie uit te voeren. Screenshots van de code en de output zijn inbegrepen. Lezers die willen om mee te volgen op hun eigen systemen of de code kan downloaden van de bestanden hieronder (klik met de rechtermuisknop en selecteer "opslaan als" of "Link opslaan als") exemplaar:

(download) SAS-code voor Tutorial deel 1
(download) SAS Data: Transacties
(download) SAS Data: Betalingswijzen
(download) SAS Data: Personeel

Opmerking: Deze handleiding maakt gebruik van SAS termen en SQL termen door elkaar. De volgende sets van termen zijn equivalent:

  • Variabele kolom
  • Data set, tafel

Lezen van een Data Set

SQL SELECT commando definieert de gegevens uit een bestaande tabel. De UIT commando geeft de bron tafel.

Voorbeeld: Lees en uitgang van alle beschikbare informatie over de winkel personeel --

SAS PROC SQL: Read an entire data set and output to the screen

Met behulp van de * argument met SELECT commando selecteert automatisch alle beschikbare kolommen in de tabel. Standaard geen extra PROC PRINT PROC SQL-uitgangen aan het scherm, zo nodig is om het resultaat.

SAS Output: List of Store Employees

De output is gelijk aan het resultaat van het gebruik van een SET-commando in een DATA stap zonder voorwaardelijke verklaringen.

Reading specifieke variabelen van een Data Set

Om specifieke kolommen query uit een bron tafel, een lijst van de variabelen als door komma's gescheiden argumenten na het SELECT commando

Voorbeeld: Lees en uitgang van de eerste en de laatste namen van de winkel personeel

SAS PROC SQL: Read specific variables from a data set

In SQL, kolom zijn de namen zijn vermeld, gescheiden door komma's, terwijl in het DATA stap kolomnamen (variabelen), gescheiden door spaties.

SAS Output: First and Last Names of Store Employees

De output is gelijk aan het resultaat van de afgifte van SET en KEEP opdrachten binnen een DATA stap.

Filteren van een Data Set

De WANNEER commando kan worden gebruikt voor het filteren van individuele records uit een bron tafel. Deze opdracht wordt gevolgd door een of meer afhankelijk argumenten op basis van de variabelen beschikbaar in de bron van gegevens.

Voorbeeld: Lijst personeel met de achternaam "Wilson"

SAS PROC SQL: Filter data results

De eenvoudigste verklaring voorwaardelijke wedstrijden een kolom om een letterlijke waarde. Numerieke gegevens kunnen ook worden vergeleken met behulp van = maar de letterlijke waarde zou niet tussen aanhalingstekens.

SAS Output: Store Employees with the Surname Wilson

De SQL-functies WAAR opdracht op dezelfde manier als de WHERE commando gebruikt in het DATA stap

WAAR De opdracht is niet beperkt tot eenvoudige vergelijkingen. Meerdere kolommen kunnen worden geƫvalueerd op een tijdstip.

Voorbeeld: Lijst personeel in de media station met de laatste naam "Wilson"

SAS PROC SQL: Filter data results by matching on multiple variables

De Booleaanse operatoren AND en OR kunnen gebruikt worden, evenals haakjes om meer gecompliceerde voorwaardelijke logica.

SAS Output: Store Employees in the Media station with the Surname Wilson

De output geeft het een werknemer met de laatste naam "Wilson" die ook werkt in de Media station. Nogmaals, de werking van de SQL-commando WHERE identiek aan de WHERE verklaring gebruikt in het DATA stap.

Het symbool ^ kan gebruikt worden om een logische voorwaarde ontkennen binnen een WHERE-opdracht

SAS PROC SQL: Filter data results using negative matching

Het symbool ^ ook worden geplaatst voor een open haakjes ontkennen ingewikkelder voorwaardelijke logica.

SAS Output: Store Employees that do NOT have the Surname Wilson

De output toont iedere werknemer niet met de naam "Wilson"

Combineren van de WHERE commando met de IN-commando maakt het mogelijk te vergelijken een kolom aan een lijst van mogelijke waarden.

Voorbeeld: Lijst opslaan werknemers in de media of Computer-stations

SAS PROC SQL: Filter data results using a list of values

De IN commando kan gebruikt worden met elke geldige data type (of zelfs een sub-query de productie van een kolom van de gegevens), maar lijsten kunnen niet mengen data types.

SAS Output: Store Employees in the Computer or Media station

De output geeft alle werknemers in de genoemde stations.

Lezen van gegevens in een nieuwe Data Set

Tot dusver alle voorbeelden uitgang rechtstreeks op het scherm, dat is standaard PROC SQL gedrag (in SAS EG, de uitvoer gaat naar de standaard ODS bestemming). In de meeste gevallen zal de gewenste doelgroep een andere tafel - vaak een nieuwe tabel. Om de uitgang van de omleiding van een SQL-query op een reeks nieuwe gegevens, gebruik van de CREATE TABLE / AS syntaxis aan het begin van de verklaring:

Voorbeeld: Maak een duplicaat van het personeel tafel

SAS PROC SQL: Read an entire data set and output to a new data se

Vrijwel alle SQL-statement dat scherm output produceert, worden rechtstreeks aan de uitgang van een andere tabel. Om systeem te voorkomen slow-downs, grote SQL queries (bijv. zoekopdrachten die produceren duizenden lijnen) moet altijd worden uitgevoerd om een nieuwe dataset voor bezichtiging.

SAS Data Set - Replica of Staff table

Geen output wordt geproduceerd op het scherm, maar een nieuwe tafel is gemaakt in de WORK map, met daarin een exacte replica van de gegevens in de bron tabel.

<<Terug naar Begin van de serie

Geplaatst onder: Development, Tutorials
Tags:

Leave a Reply

Captcha
Vul de letters zie je hierboven.