Celestialrandy SQL2
Celestialrandy SQL2
WITH
user never non cash AS (
SELECT
id_pelanggan.
count(distinct case when bayar_cash = 1 then id_order end) AS
total_order_cash.
count(distinct case when bayar_cash = 0 then id_order end) AS
total_order_non_cash.
count(distinct id_order) AS total_order
FROM rakamin_order
GROUP BY1
HAVING count(distinct case when bayar_cash = 0 then id_order end) = 0
)
SELECT unnc.id_pelanggan, rc.nama, r.email, rc.telepon, unnc.total_order
FROM user_never_non_cash AS unnc
LEFT JOIN rakamin_customer rc ON r.id_pelanggan = unnc.id_pelanggan
LEFT JOIN rakamin_customer_address rca ON rca.id_pelanggan = unnc.id _pelanggan
WHERE rc.pengguna_aktif= 1 AND rc,penipu = 0 AND rc.konfirmasiLtelepon = 1
—Soal 4
SELECT a.nama, a.email, a.telepon, a.metode_bayar, a.jumlah_order, rca.alamat
FROM
(
SELECT
rc.id_pelanggan, rc.nama, rc.email, rc.telepon, ro.metode_bayar
count(ro.id_pelanggan) as jumlah_order
FROM rakamin_customer rc
LEFT JOIN rakamin order ro on rc.id_pelanggan = ro.id_pelanggan
WHERE rc.penipu = 0
AND rc.pengguna_aktif = 1
AND rc.konfirmasi_telepon = 1
AND ro.bayar_cash = 1
CROUP BY 1,2,3,4,5
) a
LEFT JOIN rakamin_customer_adress rca on a.id_pelanggan = rca.id_pelanggan
—Soal 5
WITH customer membership AS (
SELECT
kota,
CASE
WHEN poin_belanja BETWEEN 10 AND 100 THEN ‘Bronze’
WHEN poin_belanja BETWEEN 100 AND 300 THEN ‘Silver’
WHEN poin_belanja > 300 THEN ‘Gold’
ELSE 'Non Member’
END AS membership
FROM rakamin_customer_address AS rca
RIGHT JOIN (
SELECT
id_pelanggan,
SUM(CASE WHEN bayar_cash = 0 THEN kuantitas * harga END) AS
totaL_belanja_noncash,
SUM(CASE WHEN bayar_cash = 0 THEN kuantitas * harga END) / 1000 AS poin
belanja
FROM rakamin_order
GROUP BY 1
) AS ro ON rca.id_pelanggan=ro.id_pelanggan
)
SELECT
kota.
COUNT(CASE WHEN membership = 'Non Member' THEN membership END) AS
non_member,
COUNT(CASE WHEN membership = 'Bronze THEN membership END) AS
bronze_member,
COUNT(CASE WHEN membership = 'Silver' THEN membership END) AS
silver_member,
COUNT(CASE WHEN membership = 'Gold' THEN membership END) AS gold_member
FROM customer _membership
GROUP BY 1: