Data Step oder PROC SQL – Was soll ich nehmen? 1 ... - SAS-Wiki
Data Step oder PROC SQL – Was soll ich nehmen? 1 ... - SAS-Wiki
Data Step oder PROC SQL – Was soll ich nehmen? 1 ... - SAS-Wiki
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
Base <strong>SAS</strong><br />
END;<br />
ELSE DO;<br />
RETURN;<br />
END;<br />
DROP RecNum;<br />
RUN;<br />
/**/<br />
4.8 Daten eines <strong>Data</strong>sets aktualisieren mit Werten einer Nachschlagetabelle<br />
• Szenario<br />
o Im <strong>Data</strong>set LIGA.LIGATABELLE <strong>soll</strong>en pro Saison, Team und Spieltag<br />
die erre<strong>ich</strong>ten Punkte und Tore kumuliert werden, so dass anschließend die<br />
Punktetabelle je Spieltag ermittelt werden kann<br />
• Benötigt werden aus LIGA.RESULTS: Datum, ToreHeim und<br />
ToreGast<br />
o Problem<br />
• Einfacher Join geht n<strong>ich</strong>t, da das Team ja Heim- <strong>oder</strong> Gastmannschaft<br />
sein kann<br />
• Zur Verfügung stehende Techniken<br />
o DATA <strong>Step</strong> mit BY-Verarbeitung<br />
o <strong>SQL</strong> Join bzw. <strong>SQL</strong> SELECT mit Formaten scheidet aus, da n<strong>ich</strong>t in einem<br />
Schritt realisierbar<br />
• Empfehlung für/ Vorteile der anzuwendende(n) Technik<br />
o DATA <strong>Step</strong><br />
o Vorteile DATA <strong>Step</strong><br />
• Mit HASHTABLE-Lookup können gle<strong>ich</strong>zeitig mehrere Schlüssel<br />
abgegl<strong>ich</strong>en und mehrere Zielwerte übernommen werden<br />
• Die Hashtabelle muss vorher n<strong>ich</strong>t sortiert sein<br />
• Die Hashtabelle wird in den Hauptspe<strong>ich</strong>er gelesen, wodurch das<br />
Nachschlagen sehr schnell geht (Vors<strong>ich</strong>t bei sehr großen Tabellen<br />
wegen Spe<strong>ich</strong>erplatz!)<br />
• Mehrere Hashtabellen sind mögl<strong>ich</strong><br />
• BY- Verarbeitung im DATA <strong>Step</strong> ermögl<strong>ich</strong>t Kumulieren<br />
• TIPP<br />
o Hat man variable Joins, ggf. unterschiedl<strong>ich</strong>e Nachschlage-Tabellen mit<br />
unterschiedl<strong>ich</strong>e Nachschlage-Werten<br />
• => DATA <strong>Step</strong> mit HASHTABLE-Lookup<br />
• Spielstand nach diesem Arbeitsschritt<br />
o Erneute Führung für DATA <strong>Step</strong> 4 : 3<br />
• Beispielprogramm<br />
/**<br />
Füllen der Ligatabelle mit den Ergebnissen der einzelnen<br />
37