Berikut adalah contoh penggunaan COALESCE dengan GROUP BY dalam PostgreSQL:
Misalkan kita memiliki tabel sales yang berisi data penjualan produk dengan kolom product_id, region, dan sales_amount. Beberapa penjualan mungkin tidak memiliki nilai region (null). Kita ingin menghitung total penjualan untuk setiap wilayah, tetapi jika region null, kita ingin menggantinya dengan 'Unknown'.

Struktur Tabel sales

CREATE TABLE sales (
    product_id INT,
    region VARCHAR,
    sales_amount NUMERIC
);

Contoh Data dalam Tabel sales

INSERT INTO sales (product_id, region, sales_amount) VALUES
(1, 'North', 100),
(2, 'South', 150),
(3, NULL, 200),
(4, 'East', 250),
(5, NULL, 300);

Query Menggunakan COALESCE dengan GROUP BY

SELECT 
    COALESCE(region, 'Unknown') AS region,
    SUM(sales_amount) AS total_sales
FROM 
    sales
GROUP BY 
    COALESCE(region, 'Unknown');

Penjelasan Query

  • COALESCE(region, 'Unknown'): Mengganti nilai null di kolom region dengan 'Unknown'.
  • SUM(sales_amount): Menghitung total penjualan untuk setiap wilayah.
  • GROUP BY COALESCE(region, 'Unknown'): Mengelompokkan hasil berdasarkan wilayah, di mana wilayah yang tidak memiliki nilai akan digantikan dengan 'Unknown'.

Hasil Query

Hasil dari query di atas akan terlihat seperti ini:
regiontotal_sales
North100
South150
East250
Unknown500
Dalam contoh ini, penjualan yang tidak memiliki wilayah (null) digabungkan di bawah wilayah 'Unknown'. Ini memastikan bahwa data penjualan yang tidak lengkap tetap termasuk dalam total penjualan.