Postingan lainnya
Hasil agregasi di SQL (bigquery) tidak sama dengan yang seharusnya
Dataset a berisi jumlah faskes per kabupaten/kota dimana faskes ini terdiri dari beberapa jenis dan data ini ada untuk tahun 2018-2021 Dataset b berisi luas wilayah per desa/kelurahan, namun ada juga informasi kabupaten/kota, bahkan kecamatan setiap desa/kelurahan dan data ini hanya ada di tahun 2020 (dataset diambil dari open data jabar)
query saya:
SELECT
a.nama_kabupaten_kota AS kabupaten_kota,
SUM(a.jumlah_faskes) AS jumlah_faskes,
ROUND(SUM(b.luas_wilayah),2) AS luas_kabupaten_kota
FROM `jabar.jumlah faskes 2018-2021` AS a
LEFT JOIN
`jabar.luas wilayah 2020` AS b
ON a.kode_kabupaten_kota = b.bps_kode_kabupaten_kota
WHERE a.tahun = 2020
GROUP BY kabupaten_kota
Hasil penjumlahannya tidak sesuai dengan hasil hitung manual saya menggunakan excel (lebih besar hasil di bigquery). Saya memang baru belajar SQL. Apakah ada query yang keliru?
Tanggapan
coba di format lebih baik ya, yang bukan kode jangan dimasukkans ebagai kode di pertanyaannya agar mudah dibaca
Iyaa saya baru di sini jadi masih menyesuaikan. Terima kasih
Halo selamat bergabung. Coba dijelaskan dulu "hasil yang diinginkan apa" ? kita bingung mau membenarkan apa kalau tidka tahu tujuannya
2 Jawaban:
Jawaban Terpilih
coba ini bro
SELECT
a.nama_kabupaten_kota AS kabupaten_kota,
SUM(a.jumlah_faskes) AS jumlah_faskes,
ROUND(b.luas_kabupaten_kota, 2) AS luas_kabupaten_kota
FROM `jabar.jumlah faskes 2018-2021` AS a
LEFT JOIN (
SELECT bps_kode_kabupaten_kota, SUM(luas_wilayah) AS luas_kabupaten_kota
FROM `jabar.luas wilayah 2020`
GROUP BY bps_kode_kabupaten_kota
) AS b
ON a.kode_kabupaten_kota = b.bps_kode_kabupaten_kota
WHERE a.tahun = 2020
GROUP BY kabupaten_kota, luas_kabupaten_kota
Tanggapan
thank you bro. It works, alhamdulillah
Jadi ini mau membuat tabel dengan 3 kolom, yaitu kolom kabupaten/kota, jumlah faskes, dan luas wilayah. Hanya saja di dataset a, ada 4 jenis faskes di setiap kabupaten/kota dan di dataset b ada kolom kecamatan dan kelurahan/desa di setiap kabupaten/kota jadi itu memengaruhi penjumlahannya.
Selain jawaban dari @adamajalah27, saya juga ada query yang also work
SELECT
a.kabupaten_kota,
a.jumlah_faskes,
b.luas_wilayah
FROM (
SELECT a.kode_kabupaten_kota AS id,
a.nama_kabupaten_kota AS kabupaten_kota,
SUM(a.jumlah_faskes) AS jumlah_faskes
FROM `jabar.jumlah faskes 2018-2021` AS a
WHERE a.tahun = 2020
GROUP BY kabupaten_kota, id
) AS a
LEFT JOIN (
SELECT b.bps_kode_kabupaten_kota AS id,
b.bps_nama_kabupaten_kota AS kabupaten_kota,
ROUND(SUM(b.luas_wilayah),2) AS luas_wilayah
FROM `jabar.luas wilayah 2020` AS b
GROUP BY kabupaten_kota, id
) AS b
ON a.id = b.id
thank you all