Analisa laporan penjualan menggunakan SQL

Renal
5 min readNov 3, 2022

--

My mind at right now

Background Project

Dataset dari project ini dipasok melalui DQLab, dataset nya meliputi dokumen transaksi dari tahun 2009 sampai tahun 2012, terdiri dari 5.500 baris. Tiap reputasi daerah memiliki invoice berupa ‘Order finished’ , ‘order returned’ dan ‘order canceled’

Dataset Brief

#table information
DESC dqlab_sales_store;

#first 5 records
SELECT *
FROM dqlab_sales_store
LIMIT 5;

Output :

Fig 1 : informasi tabel dari dqlab_sales_store
Fig 2 : 5 baris pertama dari dqlab_sales_store

Mari Kita selesaikan :D

  1. Kinerja keseluruhan sales berdasarkan tahun
SELECT YEAR(order_date) years,
SUM(sales) sales,
COUNT(order_status) 'number of orders'
FROM dqlab_sales_store
WHERE order_status = 'Order Finished'
GROUP BY 1;

Order_date area memiliki format tanggal, kita bisa mendapatkan struktur fase tanggal 12 bulan menggunakan fungsi YEAR(). Selanjutnya kita menggunakan SUM() Untuk menjumlahkan seluruh penjualan, kemudian COUNT() Untuk menghitung jumlah pesanan. Jangan lupa untuk menambahkan klause WHERE untuk filtering order_status nya YGY.

Output :

Fig 3: Jumlah Dari Pesanan dan penjualan

Bisa kita lihat , pendapatan DQLAB Terus berubah sepanjang tahun. Seluruh pendapatan terbaik terdapat pada tahun 2009 dan tidak bertambah besar di tahun berikutnya.

2. Kinerja keseluruhan berdasarkan sub category

SELECT YEAR(order_date) as years,
product_sub_category,
sum(sales) as sales
FROM dqlab_sales_store
WHERE YEAR(order_date) BETWEEN 2011 AND 2012 AND order_status = 'Order Finished'
GROUP BY years, product_sub_category
ORDER BY years, sales DESC;

Output :

Fig 4 : jumlah penjualan dari Sub Category di 2011 dan 2012
SELECT *,
ROUND((sales2012-sales2011)*100/sales2012, 1) 'sales growth (%)'
FROM(
SELECT product_sub_category,
SUM( IF( YEAR(order_date) = 2011, sales, 0)) sales2011,
SUM( IF( YEAR(order_date) = 2012, sales, 0)) sales2012
FROM dqlab_sales_store
WHERE order_status = 'Order Completed'
GROUPS BY product_sub_category
) sub_category
MESSAGE AFTER 4 DESC;

Disini pivot desk digunakan untuk mengevaluasi pendapatan lengkap di tahun 2011 dan 2012. Kita dapat menggunakan SUM() Yang diamati melalui Fitur IF() . Untuk melakukanya. SUM() di gunakan untuk mendapatkan pendapatan lengkap dan IF () Digunakan untuk filtering data 12 bulan yang ditentukan

Output :

Fig 5 : Perbandingan penjualan berdasarkan Sub Category di tahun 2011 dan 2012

Sebagian besar pendapatan mengarah pada peningkatan , di buktikan dengan nilai value yang bagus. Namun ada beberapa sub category barang dagangan yang dibeli mengalami penurunan pendapatan dari 2011 hingga 2012 yang di buktikan dengan nilai value yang buruk. Labels , Copier Dan Fax Mengalami penurunan total penjualan yang cukup signifikan

3. Efektivitas Dan Efesiensi Promosi Berdasarkan tahun

SELECT YEAR(order_date) years,
SUM(sales) sales,
SUM(discount_value) 'promotion_value',
ROUND( SUM(discount_value)*100/SUM(sales), 2) 'burn_rate_percentage'
FROM dqlab_sales_store
WHERE order_status = 'Order Finished'
GROUP BY 1;

evaluasi burn rate digunakan untuk memahami efektivitas promosi. dengan menggunakan evaluasi jumlah biaya promosi penjualan yang lengkap. Disini Kita berharap Harga burn rate DQLab tidak melebihi 4,5%

Fig 6 : Rumus Burn Rate

Output :

Fig 7 : Burn Rate berdasarkan tahun

Konsekuensi dari tabel diatas memberitahu kita bahwa harga burn rate diatas 4,5% untuk setiap 12 bulan secara keseluruhan. Hal ini menunjukan bahwa promosi promosi yang dilakukan belum mampu meminimalkan burn charge hingga maskimal 4,5%. Dan kita juga dapat mengetahui produk apa yang memberikan Kontribusi besar sehingga menyebabkan harga jual yang lebih besar dari yang diperkirakan.

4. Efektivitas Dan efesiensi penjualan berdasarkan sub category

SELECT YEAR(order_date) years,
product_sub_category,
product_category,
SUM(sales) sales,
SUM(discount_value) promotion_value,
ROUND(SUM(discount_value)*100/SUM(sales),2) 'burn_rate_percentage'
FROM dqlab_sales_store
WHERE YEAR(order_date) = 2012
AND order_status = 'Order Finished'
GROUP BY 3, 2, 1
ORDER BY 4 DESC;

Output :

Fig 8 : Burn Rate berdasarkan sub-category dari product

ada 5 sub category yang memiliki burn charge dibawah 4,5%.

hasil ini kita mengetahui bahwa masih banyak sub category produk yang memiliki biaya pembakaran lebih dari 4,5%.

5. Transaksi Costumer per tahun

SELECT YEAR(order_date) years,
COUNT(DISTINCT customer) 'number of customers'
FROM dqlab_sales_store
WHERE order_status = 'Order Finished'
GROUP BY 1;

perhitungan variasi costumer setiap tahun tidak memuat reproduction value disini lah kita menggunakan klausa DISTINCT untuk mendapatkan harga khusus berdasarkan transaksi konsumen

Output :

Fig 9 : jumlah konsumen berdasarkan tahun

Variasi konsumen tidak banyak berubah secara keseluruhan. Tapi untungnya , kita tidak mengalami penurunan pelanggan yang besar. kita bisa melihat bahwa jumlah klien cenderung berada di kisaran nilai 580–590.

6. jumlah konsumen baru berdasarkan tahun

SELECT YEAR(first_order) years,
COUNT(customer) 'new customer'
FROM(
SELECT customers,
MIN(order_date) first_order
FROM dqlab_sales_store
WHERE order_status = 'Order Finished'
GROUP BY 1) first
GROUP BY 1;

Untuk mendapatkan berbagai macam klien baru dari setiap tahunya, kita hanya ingin mendapatkan informasi yang menunjukan transaksi pertama kali dari setiap pelanggan. Kita bisa menggunakan MIN() Pada subjek first_order

Output :

Fig 10 : Jumlah dari konsumen baru berdasarkan tahun

RINGKASAN

Berdasarkan evaluasi yang kita lakukan , dapat disimpulkan bahwa

  1. Seluruh pendapatan pesanan toko DQLab berfluktuasi secara keseluruhan, dimana pendapatan paling besar terdapat pada tahun 2009 , meskipun peningkatan pada tahun 2011 tidak terlalu signifikan
  2. Total pendapatan utama berasal dari sub category barang yang diterima pada tahun 2011 dan 2012 secara keseluruhan , namun ada beberapa produk yang mengalami penurunan pendapatan, yaitu peralatan , rak buku , meja , label , mesin fotokopi dan fax.
  3. Tingkat burn rate sepanjang tahun tetap diatas 4,5% Hal ini menunjukan efektivitas dan evesiensi promosi belum sesuai dengan harapan DQLab.
  4. Kisaran Konsumen selama bertahun tahun cenderung tetap, yaitu sekitar 580–590
  5. Jumlah konsumen baru menurun dari tahun ke tahun , dengan variasi konsumen terendah yaitu sebanyak 11 konsumen pada tahun 2012

Feel free to follow my GitHub :D https://github.com/HansenRenal

--

--

Renal
Renal

Written by Renal

Data Enthusiast. Writing through over passion - www.linkedin.com/in/RenaldiAldi

No responses yet