Projeyi öncelikle forklayın ve clone edin. Proje sayımız ilerledikçe proje yönetimimizi kolaylaştırmak adına projelerimizi belli klasör kalıplarında saklamak işimizi kolaylaştırmak adına iyi bir alışkanlıktır. Örnek bir Lokasyon: Code2Work/DataScience/data-project-2.
Aşağıdaki komutları sıtrayla çalıştırınız.
- python -m venv venv
- venv\Scripts\activate
- pip install -r requirements.txt => Install all dependencies
- python watch.py => Python run all tests
- Eğer daha detaylı bir şekilde testlerin içerisine bakmak isterseniz
- pytest .\tests\test_question.py -s -v
- Belirtilen sql querylerini yazabilmek için scripts klasörü altındaki bulunan init_db.py dosyası içerisindeki tüm queryleri sırasıyla kendi local veritabanınızda çalıştırınız.
- Veritabanınızın hazır olduğundan emin olmak için tüm tablolara birer SELECT sorgusu atıp sonuçların doğru olduğundan emin olunuz.
- Çalışırken sadece data klasörü altında bulunan questions.py dosyasında çalışacağız. Bunun klasör dışındaki kodları değiştirmeyiniz !
- connect_db fonksiyonu içerisinde veritabanına bağlanma bilgileri var. Projenizi kendi localinizde test ederken burada bilgileri kendi local veritabanı bilgilerinizle değiştirerek test ediniz. Ancak kodunuzu pushlarken bu veritabanı bilgilerini ilk bulduğunuz şekilde bırakınız. Çünkü kodlarınız Cloud bir ortamda bu bilgilerle bir veritabanına bağlancaklardır.
- Completed siparişlerin listesini gösteren bir VIEW oluştur.
- Electronics kategorisindeki ürünleri gösteren bir VIEW oluştur.
- Her müşterinin toplam harcamasını WITH kullanarak hesapla.
- Sipariş ve ürün detaylarını birleştirerek toplam tutar (price * quantity) hesapla. WITH kullanarak yap.
- En pahalı ürünü almış kişinin full name değerini döndüren sorguyu yazınız.
- Sipariş durumu 'completed' olanlar 'Tamamlandı', 'cancelled' olanlar ise 'İptal Edildi' şeklinde değiştirilip, order_id, status ve status_description kolonlarını dönen sqli yazınız.
- Ortalama fiyatın üzerindeki ürünleri bulunuz.(Sorgu sadece prodduct_name ve price kolonlarını dönsün)
- Alışveriş sayısına göre en sadık müşterileri bulmak istiyoruz. Buna göre alışveriş sayısı 5'ten büyük olanlara 'Sadık Müşteri', 2 ile 5 arasında olanlara 'Orta Seviye' diğer müşterilere de 'Yeni Müşteri' diyecek şekilde tüm müşterilerin isimlerini ve ve bu yeni tagi 'customer_category' ismiyle dönen sorguyu yazınız.
- Son 30 gün içinde sipariş veren müşterilerin isimlerini dönen sorguyu yazınız.
- En çok sipariş verilen ürünü bulunuz.
- Ürün fiyatlarına göre etiketleme yapmak istiyoruz. Fiyatı 1000'den fazla olan ürünler için 'Pahalı'. 500 ile 100 arasında olan ürünler 'Orta' diğer ürünler 'Ucuz' olarak işaretleneceklerdir. Sorgu product_name,price ve yeni taglenmiş kısmı price_category ismiyle dönmelidir.