Saya mencoba meringkas asal pinjaman bulanan berdasarkan bulan dari tabel yang berisi data tingkat pinjaman kembali ke akhir 90-an. Setiap bulan, data tingkat pinjaman terbaru ditambahkan ke tabel – bidang month_key digunakan untuk mengidentifikasi catatan terbaru. Saya ingin mengelompokkan tanggal awal pinjaman berdasarkan bulan dan menjumlahkan total komitmen pinjaman yang berasal dari masing-masing bulan. Tabel terlampir menggambarkan bagaimana saya ingin meringkas data dalam kueri saya, dan kode di bawah ini adalah apa yang telah saya tulis sejauh ini - ini menampilkan data yang diringkas berdasarkan bulan sejak tahun 90-an. Terima kasih untuk bantuannya.

Edit: Solusi JMB berhasil. Setelah saya menambahkan bidang month_key kembali, dan mengurutkan untuk catatan bulan terakhir, dan menjumlahkan saldo pinjaman asli, saya menerima output yang saya butuhkan.

select SUM(INDIVIDUAL_LOAN_BALANCE) AS MONTHLY_LOAN_ORIGINATIONS, ltrim(TO_CHAR(ORIG_OBGN_DATE,'mm-yyyy'), '0') AS ORIG_MONTH
FROM LOAN_TABLE
WHERE MONTH_KEY = 202002
group by ltrim(TO_CHAR(ORIG_OBGN_DATE,'mm-yyyy'), '0')
HAVING ltrim(TO_CHAR(ORIG_OBGN_DATE,'mm-yyyy'), '0') >= '12-2018'
ORDER BY ltrim(TO_CHAR(ORIG_OBGN_DATE,'mm-yyyy'), '0') DESC

Contoh bagaimana saya ingin kueri menggambarkan data:

Example for how I want the query to depict the data

Bagaimana kueri saat ini mengeluarkan data

How the query currently outputs the data

1
ADT 24 Maret 2020, 01:14

1 menjawab

Jawaban Terbaik

Saya akan menyarankan untuk memanfaatkan tipe data tanggal untuk memfilter, mengagregasi, dan mengurutkan: ini membuat segalanya lebih mudah dan lebih aman (biasanya, klausa where Anda membandingkan string, dan tidak melakukan apa yang Anda harapkan). Anda dapat menangani pemformatan dalam klausa select.

select 
    sum(individual_loan_balance) as monthly_loan_originations,
    ltrim(to_char(trunc(orig_obgn_date, 'mm'),'mm-yyyy'), '0') as orig_month
from loan_table
where orig_obgn_date >= date'2018-01-01'
group by trunc(orig_obgn_date, 'mm')
order by trunc(orig_obgn_date, 'mm')
1
GMB 23 Maret 2020, 23:11