Sas: so verwenden sie die having-klausel in proc sql


Sie können die HAVING- Klausel in PROC SQL in SAS verwenden, um Zeilen zu filtern, die eine bestimmte Bedingung erfüllen.

Beachten Sie den subtilen Unterschied zwischen WHERE- und HAVING- Klauseln:

  • WHERE filtert Zeilen, bevor eine Gruppierung erfolgt.
  • HAVING filtert Zeilen nach jeder Gruppierung.

Das folgende Beispiel zeigt, wie die HAVING- Klausel in der Praxis verwendet wird.

Beispiel: Verwendung der HAVING-Klausel in PROC SQL

Angenommen, wir haben in SAS den folgenden Datensatz, der Informationen über verschiedene Basketballspieler enthält:

 /*create dataset*/
data my_data;
    input team $position $points;
    datalines ;
A Guard 22
A Guard 20
A Guard 30
A Forward 14
A Forward 11
B Guard 12
B Guard 22
B Forward 30
B Forward 9
B Forward 12
B Forward 25
C Guard 22
C Guard 19
C Guard 10
;
run ;

/*view dataset*/
proc print data =my_data; 

Wir können den folgenden Code verwenden, um die Summe der von den Spielern in jedem Team erzielten Punkte zu berechnen, wobei die Spieler Wächter sind, und dann die Ergebnisse filtern, um nur Teams anzuzeigen, deren Summe größer als 50 ist:

 proc sql ;
    select team, sum(points) as sum_points
    from my_data
    where position='Guard'
    group by team
    having sum_points > 50 ;
quit ; 

So funktionierte dieser Code genau:

  • Zuerst haben wir mit SELECT das Team und die Summe der Punkte ausgewählt
  • Dann haben wir WHERE verwendet, um Zeilen zu filtern, in denen die Position „Guard“ war.
  • Als nächstes haben wir GROUP verwendet, um die Ergebnisse nach Team zu gruppieren
  • Als nächstes haben wir HAVING verwendet, um Teams mit einer Punktesumme > 50 zu filtern.

So hätten die Ergebnisse dieser Abfrage ausgesehen, wenn wir die HAVING- Anweisung nicht eingefügt hätten:

 proc sql ;
    select team, sum(points) as sum_points
    from my_data
    where position='Guard'
    group by team;
quit ; 

Beachten Sie, dass die Punktesumme von Team B nicht mehr als 50 betrug.

Als wir also im vorherigen Beispiel die HAVING- Anweisung verwendeten, haben wir Team B herausgefiltert, da deren Punktesumme nicht größer als 50 war.

Zusätzliche Ressourcen

In den folgenden Tutorials wird erläutert, wie Sie andere häufige Aufgaben in SAS ausführen:

SAS: So verwenden Sie den LIKE-Operator in PROC SQL
SAS: So verwenden Sie den IN-Operator in PROC SQL
SAS: So verwenden Sie den WHERE-Operator in PROC SQL

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert