die SQL ROW_NUMBER
Windowing-Funktion duplizieren, können Sie die Daten von beide die PARTITION
und ORDER BY
Klauseln sortieren müssen. In einem nachfolgenden Datenschritt SET
den sortierten Datensatz nur durch die Partitionsvariable (n) und die FIRST.
automatische Variablensteuerung die neue Zeilennummervariable zuweisen.
Hier ist eine Lösung für Ihr erklärtes Beispiel:
proc sort data=companyData;
by region name;
run;
data want;
set companyData;
by region;
if first.region then row_number = 1;
else row_number + 1;
run;
Beachten Sie die BY
-Anweisung in den Daten Schritt zum PARTITION BY
Klausel in ANSI SQL entspricht aber den PROC SORT
Schritt sortiert auch durch die Spalten in der ORDER BY
Klausel. Beachten Sie außerdem, dass wenn die zu migrierende Abfrage eine ORDER BY
SQL-Klausel enthält, Sie dies mit einem weiteren Schritt PROC SORT
verfolgen müssen.
@Joe guten Fang! und stimme beiden völlig zu, ich habe sie bearbeitet! Vielen Dank! – isJustMe
yeah, du bist mgith ein Overhead in diesem Fall – isJustMe
Diese Antwort fehlt der Sortierschritt, Bob unten erwähnt. Ohne das Hinzufügen des zusätzlichen Sortierschritts können Sie nicht die gleichen Ergebnisse erzielen wie im obigen SQL-Beispiel. –