Pizza Satış Analizi 🍕( SQL & Power BI)

Yasemin Derya Dilli
6 min readApr 25, 2024

--

Selamlar, pizza sever biri olarak tesadüfen denk geldiğim pizza verisini analiz etmesem olmazdı :)

Kullandığım veri setini de ilgililer için baştan şuraya iliştireyim: https://github.com/Remyproject/Pizza--Sales_Analysis-Report/blob/main/pizza_sales_excel_file.xlsx

Şimdi elimizde neler varmış yakından bakalım;

pizza_id: index’i belirtiyor ve 48.620 satırlık bir veri setimiz var.

order_id: benzersiz sipariş numarasını temsil eder.

pizza_name_id: Pizza isimlerinin ve boyutlarının benzersiz isimleri

quantity: miktarı belirtir.

order_date: sipariş tarihi

order_time: sipariş saati

unit_price: birim fiyatı

total_price: miktar * birim fiyat

pizza_size: pizza boyutu

pizza_category: pizza kategorisi

pizza_ingredients: pizza içindeki malzemeler

pizza_name: pizza ismi

Veri seti sadece 2015 yılı Ocak-Aralık aylarını kapsayan veriler bulunmakta. Aşağıya veri setinin ufak bir kısmını ekledim.

SQL ANALİZİ

Veri setini PIZZA ismiyle SQL’a yükledim.

15 sorgudan oluşan bir çıktı sizi beklemekte. Ben çıkarımlarımı altlarına ekledim. Eklemek istediklerinizi yorumlarda belirtebilirsiniz.

Sorgu 1: 2015 yılındaki toplam satış tutarı, toplam sipariş miktarı ve sipariş başına ortama tutar.

SELECT SUM(total_price) AS Total_Price, COUNT(DISTINCT order_id )AS Total_Order, 
SUM(total_price)/ COUNT(DISTINCT order_id) AS Ortalama_Tutar

FROM PIZZA

Şirketimiz 2015 yılında 817.000$’lık satış yapmış. Toplam sipariş sayısının 21.350 olduğunu öğrendik ve her bir siparişin ortalama tutarı 38.30$ olduğunu hesapladık.

Pizzanın maaliyetleri ilgili bir veriye sahip olmadığım için ciro hakkında yorum yapmak pek mümkün değil. Yapsak fena olmazdı :)

Sorgu 2: En çok tercih edilen ilk 5 pizza.

 SELECT DISTINCT TOP 5 pizza_name, SUM(quantity) as Total_Quantity

FROM PIZZA

Group BY pizza_name

Order By Total_Quantity DESC

Sorgu 3: En az tercih edilen 5 pizza.

SELECT DISTINCT TOP 5 pizza_name, SUM(quantity) as Total_Quantity

FROM PIZZA

Group BY pizza_name

Order By Total_Quantity ASC

Şirketimiz 32 farklı pizza çeşidine sahip.

Belirli miktardan az satılan pizzalarla ilgili aksiyon almak, malzemelerini vurgulamak, hatta sipariş eden müşterilerle doğrudan iletişime geçerek neden tercih ettiklerini sorgulamak, dönüşler üzerinden kampanyalar oluşturmak az satılan pizza çeşitlerinin satışlarını artırma konusunda işe yarayabilir.

Sorgu 4: Pizza boyutlarına göre sipariş miktarı.



SELECT pizza_size, SUM(quantity) AS Total_Price
FROM PIZZA
Group By pizza_size

Order By SUM(quantity) DESC

Yukarıdaki çıktıya göre L boyutundaki pizza satışlarının diğer boyutlara göre daha yüksek olduğunu görüyoruz. Bu da benim aklıma kalabalık masaları, toplu kutlamaları, happy hours’ları getiriyor :))

Sipariş teslim yerleri olsaydı bu düşünceyi değerlendirebilirdik.

Ya da basitçe sevgili müşteriler, doyuruculuğu yüksek büyük boyutlu pizzalardan yanalar.

Sorgu 5: Kategorilerin satış miktarı.



SELECT pizza_category,COUNT(pizza_category) AS Count_Category FROM PIZZA

GROUP BY pizza_category

ORDER BY COUNT(pizza_category) DESC

Sorgu 6: Günlere göre toplam sipariş sayısı.

SELECT DATENAME(DW,order_date) AS SIPARIS_GUNU, COUNT(DISTINCT order_id ) AS Toplam_Siparıs 
FROM PIZZA
GROUP BY DATENAME(DW,order_date)
ORDER BY Toplam_Siparıs DESC

En çok sipariş verilen günün cuma olması çok keyifli :) Haftanın yorgunluğu cuma günü atılıyor gibi gözüküyor. Hafta sonuna doğru siparişler artarken hafta başında düştüğünü görüyoruz.

Hafta başındaki satışları artırmak için çeşitli yollara başvurulabilir.

Benim ilk aklıma gelen hafta sonuna doğru verilen siparişlerin pazar ve pazartesi verilecek siparişlerde indirim veya kupon verilmesi olabilir. Böylece hafta sonuna doğru verilecek siparişlerin hacmi sabit tutularak hafta başı siparişleri daha cazip hale getirilebilir.

Ya da tam tersi hafta başı verilen siparişlerden hafta sonu için kullanılmak üzere indirim/kupon tutarı tanımlanabilir.

Sorgu 7: Aylara göre sipariş sayısı.

SELECT DATENAME(MONTH,order_date) AS SIPARIS_GUNU, 
COUNT(DISTINCT order_id ) AS Toplam_Siparıs
FROM PIZZA
GROUP BY DATENAME(MONTH,order_date)
ORDER BY Toplam_Siparıs DESC

Yukarıdaki çıktıya göre pizzanın mevsimi var diyebiliriz. Güneşli havalarda, yaz mevsiminde siparişlerin öne çıktığını görüyoruz.

Sorgu 8: Kategoriye göre total kazancı yüzdelik gösterimi.

SELECT pizza_category, ROUND(SUM(total_price),2) Total_Reveneu,
ROUND((SUM(total_price)* 100) / (SELECT SUM(total_price) FROM PIZZA),2) AS Yüzdelik

FROM PIZZA

GROUP BY pizza_category

Sorgu 5'te en çok tercih edilen kategorinin Classic olduğunu görmüştük, bununla paralel olarak da total kazançta ise yine 1 numarada Classic’i görüyoruz.

Sorgu 9: Pizza boyutuna göre total kazancı yüzdelik gösterimi.

SELECT pizza_size,ROUND(SUM(total_price),2) Total_Reveneu,
ROUND((SUM(total_price)* 100) / (SELECT SUM(total_price) FROM PIZZA),2) AS Yüzdelik
FROM PIZZA
GROUP BY pizza_size
ORDER BY Yüzdelik DESC

L boyutundaki pizza satışlarının toplam kazancın %45'ini oluşturuyor. Hem L boyutundaki pizzaların birim fiyatının yüksek olması hem de diğer boyutlara göre daha çok satılması bu sonuçla tutarlılık gösteriyor.

Sorgu 10 : Top 10'daki en pahalı pizza ve satış miktarları.

SELECT DISTINCT TOP 10 pizza_name_id, unit_price, SUM(quantity) AS Toplam_Satıs_Miktarı FROM PIZZA
GROUP BY pizza_name_id,unit_price
ORDER BY unit_price DESC

İçeriklerini de ekledim böylece neden pahalı oldukları hakkında bir yorum yapabiliriz.

Sorgu 11: Small boyutunda en çok satış yapılan ilk 10 pizza.

SELECT TOP 10 pizza_size, pizza_name, COUNT(*) AS satilan_miktar
FROM PIZZA
WHERE pizza_size= 'S'
GROUP BY pizza_size, pizza_name
ORDER BY satilan_miktar DESC

Sorgu 12: Medium boyutunda en çok satış yapılan ilk 10 pizza.

SELECT TOP 10 pizza_size, pizza_name, COUNT(*) AS satilan_miktar
FROM PIZZA
WHERE pizza_size= 'M'
GROUP BY pizza_size, pizza_name
ORDER BY satilan_miktar DESC

Sorgu 13: Large boyutunda en çok satış yapılan ilk 10 pizza.

SELECT TOP 10 pizza_size, pizza_name, COUNT(*) AS satilan_miktar
FROM PIZZA
WHERE pizza_size= 'L'
GROUP BY pizza_size, pizza_name
ORDER BY satilan_miktar DESC

Sorgu 14: XL boyutunda en çok satış yapılan pizza.

SELECT pizza_size, pizza_name, COUNT(*) AS satilan_miktar
FROM PIZZA
WHERE pizza_size= 'XL'
GROUP BY pizza_size, pizza_name
ORDER BY satilan_miktar DESC

Sorgu 15: XXL boyutunda en çok satış yapılan pizza.

SELECT pizza_size, pizza_name, COUNT(*) AS satilan_miktar
FROM PIZZA
WHERE pizza_size= 'XXL'
GROUP BY pizza_size, pizza_name
ORDER BY satilan_miktar DESC

XL ve XXL pizza satışında sadece The Greek Pizza’nın satışı olması dikkat çekici. Bu da verinin gerçek veri olup olmadığı konusunda beni şüpheye düşürdü.

Ya da sadece The Greek Pizza’nın XL ve XXL kategorisinde satışa sunuluyor olması olabilir.

The Greek Pizza’nin diğer bir şaşırtıcı tarafı var o da şu: Sorgu 10'da en pahalı pizza listesinde ilk 2'de The Greek Pizza’nın XL ve XXL boyutlarıyla yer alıyor olması.

POWER BI DASHBOARD

Pizza Satıs Analizi Power BI Dashboard

Power BI’da SQL’den farklı olarak gün içinde sipariş dağılımını gösteren bir bilgiye de yer verdim. Akşam ve öğle saatlerinde siparişlerin yüksek olması beklenen bir durum. Sabah için ise beklendiği gibi çok düşük.

Benim ekleyeceklerim şimdilik bu kadar! Umarım incelerken keyif almışsınızdır. Eklemek istediğiniz şeyler varsa lütfen yorumlarda belirtin birlikte öğrenelim.

Teşekkürler 🙌

--

--

Yasemin Derya Dilli

Jr. Data Scientist & Data Analyst | Engineer | Content Writer