Sas: cara menggunakan klausa having di proc sql


Anda dapat menggunakan klausa HAVING di PROC SQL di SAS untuk memfilter baris yang memenuhi kondisi tertentu.

Perhatikan perbedaan halus antara klausa WHERE dan HAVING :

  • WHERE memfilter baris sebelum pengelompokan terjadi.
  • HAVING memfilter baris setelah pengelompokan apa pun.

Contoh berikut menunjukkan cara menggunakan klausa HAVING dalam praktiknya.

Contoh: Cara menggunakan klausa HAVING di PROC SQL

Misalkan kita memiliki kumpulan data berikut di SAS yang berisi informasi tentang berbagai pemain bola basket:

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

Kita dapat menggunakan kode berikut untuk menghitung jumlah poin yang dicetak oleh pemain di setiap tim DIMANA pemainnya adalah penjaga, lalu memfilter hasilnya untuk hanya menampilkan tim yang MEMILIKI jumlah lebih besar dari 50:

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

Inilah cara kerja kode ini:

  • Pertama, kami menggunakan SELECT untuk memilih tim dan jumlah poin
  • Kemudian kami menggunakan WHERE untuk memfilter baris yang posisinya “Penjaga”
  • Selanjutnya, kami menggunakan GROUP untuk mengelompokkan hasil berdasarkan tim
  • Selanjutnya, kami menggunakan HAVING untuk memfilter tim dengan jumlah poin > 50.

Inilah hasil kueri ini jika kita tidak menyertakan pernyataan HAVING :

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

Perhatikan bahwa jumlah poin Tim B tidak lebih dari 50.

Jadi ketika kita menggunakan pernyataan HAVING pada contoh sebelumnya, kita memfilter tim B karena jumlah poin mereka tidak lebih besar dari 50.

Sumber daya tambahan

Tutorial berikut menjelaskan cara melakukan tugas umum lainnya di SAS:

SAS: Cara menggunakan operator LIKE di PROC SQL
SAS: Cara menggunakan operator IN di PROC SQL
SAS: Cara menggunakan operator WHERE di PROC SQL

Tambahkan komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *