Skip to content

serhatie/data-science-project-4

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Data Science SQL Project 4 - VIEW, WITH ve CASE

Proje Kurulumu

  1. Projeyi fork edin ve kendi hesabınıza clone edin.
  2. Terminal'de proje klasörüne girin.

Mac / Linux

python -m venv venv
source venv/bin/activate
pip install -r requirements.txt

Windows

python -m venv venv
venv\Scripts\activate
pip install -r requirements.txt

Veritabanı Kurulumu

  1. PostgreSQL'in bilgisayarınızda kurulu ve çalışır durumda olduğundan emin olun.
  2. scripts/init_db.py dosyasındaki SQL komutlarını sırasıyla kendi local veritabanınızda çalıştırın.
  3. Tabloların doğru oluştuğundan emin olmak için her tabloya birer SELECT * sorgusu atın.

Not: data/question.py içindeki connect_db() fonksiyonunda veritabanı bağlantı bilgileri var. Localinizde test ederken kendi bilgilerinizle değiştirin. Pushlarken bu bilgileri varsayılan haliyle bırakın.

Başlangıç Ayarları

  1. tests/test_question.py — Dosyanın altındaki run_tests() fonksiyonunda user_id değerini kendi kullanıcı ID'nizle değiştirin.
  2. data/question.pyconnect_db() fonksiyonundaki veritabanı şifresini kendi local PostgreSQL şifrenizle değiştirin. Pushlarken varsayılan haliyle bırakın.

Çalışma Şekli

  • Sadece data/question.py dosyasında çalışın.
  • Her fonksiyon içindeki boş cursor.execute('') satırına SQL sorgunuzu yazın.
  • Diğer dosyaları değiştirmeyin.

Testleri Çalıştırma

python watch.py

Tek seferlik:

pytest tests/test_question.py -s -v

Tablolar

customers

Sütun Tip
customer_id SERIAL (PK)
full_name VARCHAR(100)
email VARCHAR(100)
signup_date DATE

products

Sütun Tip
product_id SERIAL (PK)
product_name VARCHAR(100)
price NUMERIC(10,2)
category VARCHAR(50)

orders

Sütun Tip
order_id SERIAL (PK)
customer_id INT (FK -> customers)
product_id INT (FK -> products)
order_date DATE
quantity INT
status VARCHAR(20)

Sorular

Bölüm 1: VIEW

  1. Completed (tamamlanmış) siparişlerin listesini gösteren bir VIEW oluştur. (CREATE OR REPLACE VIEW completed_orders AS ...)

  2. Electronics kategorisindeki ürünleri gösteren bir VIEW oluştur. (CREATE OR REPLACE VIEW electronics_products AS ...)

Bölüm 2: WITH (CTE)

  1. Her müşterinin toplam harcamasını WITH kullanarak hesapla. (full_name, total_spending — harcamayı price * quantity ile hesapla)

  2. Sipariş ve ürün detaylarını birleştirerek toplam tutarı (price * quantity) WITH kullanarak hesapla. (order_id, full_name, product_name, total_price)

Bölüm 3: CASE ve Subquery

  1. En pahalı ürünü almış kişinin full_name değerini döndür. (Tek sütun)

  2. Sipariş durumunu Türkçeleştir: 'completed''Tamamlandı', 'cancelled''İptal Edildi'. (order_id, status, status_description)

  3. Ortalama fiyatın üzerindeki ürünleri bul. (product_name, price)

  4. Alışveriş sayısına göre müşteri kategorisi belirle: >5 sipariş → 'Sadık Müşteri', 2–5 sipariş → 'Orta Seviye', diğer → 'Yeni Müşteri'. (full_name, customer_category)

  5. En son sipariş tarihi son 30 gün içinde olan müşterilerin isimlerini getir. (full_name)

  6. En çok sipariş verilen ürünü bul. (product_name, total_orders)

Bölüm 4: Fiyat Etiketleme

  1. Ürün fiyatlarına göre etiketle: >1000'Pahalı', 500–1000'Orta', diğer → 'Ucuz'. (product_name, price, price_category)

İpucu: Ayrı Schema Kullanmak

Localinizdeki PostgreSQL'de başka tablolarla karışmasın istiyorsanız:

CREATE SCHEMA data4;

Tablo ve sorguların başına schema adını ekleyin. Foreign key tanımlarında da schema adını unutmayın. Pushlarken schema öneki olmadan bırakın.

About

PostgreSQL Data Analysis: Practical exercises on Views, CASE statements, and Subqueries.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Python 100.0%