Blog KaryaVirtual

Gudang Pengetahuan Digital

PostgreSQL Group by .. Having

January 24, 2020 PostgreSQL 0

Summary: dalam tutorial ini, Anda akan belajar bagaimana menggunakan KLAUSA PostgreSQL Having untuk menghilangkan kelompok baris yang tidak memenuhi kondisi tertentu.

Pengantar Klausa Having

Kita sering menggunakan klausa HAVINGdalam hubungannya dengan klausa group untuk menyaring baris grup yang tidak memenuhi syarat tertentu.

Pernyataan berikut mengilustrasikan sintaks khas dari klausa HAVING:

SELECT
   column_1,
   aggregate_function (column_2)
FROM
   tbl_name
GROUP BY
   column_1
HAVING
   condition;

Klausa HAVINGmenetapkan kondisi, untuk baris grup yang dibuat oleh klausaGROUP BY setelah klausa GROUP BY di jalankan.

Sedangkan clause WHERE menetapkan kondisi untuk masing-masing baris sebelum GROUP BY dijakankan. Ini adalah perbedaan utama antara klausul HAVINGdan WHERE.

Dalam PostgreSQL, Anda dapat menggunakan klausa HAVINGtanpa GROUP BY Clause. Dalam kasus ini, klausa HAVINGakan mengubah query menjadi satu Group. Selain itu, SELECT listdan klausa HAVINGhanya dapat merujuk ke kolom dari dalam fungsi agregat. Jenis permintaan mengembalikan satu baris jika kondisi di klausa HAVING bernilai true atau null jika bernilai false.

Contoh klausa Having

Mari kita lihat tabel paymentdalam database sampel.

payment table

Contoh PostgreSQL memiliki klausa dengan fungsi SUM

SELECT
   customer_id,
   SUM (amount)
FROM
   payment
GROUP BY
   customer_id;
PostgreSQL GROUP BY with ORDER BY

Anda dapat menerapkan klausa HAVING untuk memilih satu-satunya Pelanggan yang telah menghabiskan lebih dari 200sebagaimana kueri berikut ini:

SELECT
   customer_id,
   SUM (amount)
FROM
   payment
GROUP BY
   customer_id
HAVING
   SUM (amount) > 200;
PostgreSQL HAVING with SUM

Contoh klausa having dengan fungsi COUNT

Mari kita lihat tabel customer.

customer table

Permintaan berikut mengembalikan jumlah pelanggan per toko:

SELECT
   store_id,
   COUNT (customer_id)
FROM
   customer
GROUP BY
   store_id
PostgreSQL HAVING with COUNT

Anda dapat menggunakan klausa HAVINGuntuk memilih toko yang memiliki lebih dari 300 pelanggan:

SELECT
   store_id,
   COUNT (customer_id)
FROM
   customer
GROUP BY
   store_id
HAVING
   COUNT (customer_id) > 300;
PostgreSQL HAVING with COUNT example

Dalam tutorial ini, kita telah membahas bagaimana menggunakan PostgreSQL HAVINGklausa untuk menfilter kelompok baris berdasarkan kondisi tertentu.

Leave a Reply

Your email address will not be published. Required fields are marked *