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?