Sas: proc sql'de having yan tümcesi nasıl kullanılır?


Belirli bir koşulu karşılayan satırları filtrelemek için SAS’taki PROC SQL’deki HAVING yan tümcesini kullanabilirsiniz.

WHERE ve HAVING cümleleri arasındaki ince farka dikkat edin:

  • WHERE, gruplandırma oluşmadan önce satırları filtreler.
  • HAVING, herhangi bir gruplandırmadan sonra satırları filtreler.

Aşağıdaki örnek, HAVING yan tümcesinin pratikte nasıl kullanılacağını gösterir.

Örnek: PROC SQL’de HAVING yan tümcesi nasıl kullanılır?

SAS’ta çeşitli basketbol oyuncuları hakkında bilgi içeren aşağıdaki veri kümesine sahip olduğumuzu varsayalım:

 /*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; 

Oyuncuların guard olduğu her takımdaki oyuncuların attığı puanların toplamını hesaplamak için aşağıdaki kodu kullanabiliriz, ardından sonuçları yalnızca toplamı 50’den büyük olan takımları gösterecek şekilde filtreleyebiliriz:

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

İşte bu kodun tam olarak nasıl çalıştığı:

  • Öncelikle takımı ve puan toplamını seçmek için SELECT’i kullandık.
  • Daha sonra konumun “Guard” olduğu satırları filtrelemek için WHERE’ı kullandık
  • Daha sonra, sonuçları takıma göre gruplandırmak için GROUP’u kullandık
  • Daha sonra, puan toplamı > 50 olan takımları filtrelemek için HAVING’i kullandık.

HAVING ifadesini eklememiş olsaydık bu sorgunun sonuçları şu şekilde görünürdü:

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

B Takımının puan toplamının 50’den fazla olmadığına dikkat edin.

Yani önceki örnekte HAVING ifadesini kullandığımızda, puan toplamı 50’den büyük olmadığı için B takımını filtreledik.

Ek kaynaklar

Aşağıdaki eğitimlerde SAS’ta diğer ortak görevlerin nasıl gerçekleştirileceği açıklanmaktadır:

SAS: PROC SQL’de LIKE operatörü nasıl kullanılır?
SAS: PROC SQL’de IN operatörü nasıl kullanılır?
SAS: PROC SQL’de WHERE operatörü nasıl kullanılır?

Yorum ekle

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir