COMPUTER ENGINEER

Örneklere git
Blog
SQL Server / T-SQL6 dk çalışma
65/ 65

Analitik ve bitirme projesi

Bitirme projesi: satış analitiği

Öğrendiklerini doğrulanabilir bir rapora dönüştür.

AnlaÖrneği inceleKendin uygula

Kavramı anlayalım

Bir dashboard için önce sözleşme yaz: yalnız Paid siparişler, satır fiyatından hesaplanan gelir, sipariş başına bir toplam ve sipariş tarihi bazında dönemler. Siparişsiz müşteriyi müşteri görünümünde koru. Müşteri sayısı ile sipariş sayısı ayrı ölçülerdir.

Teslimatın üç parçası olsun: doğru sonuç üreten sorgu, grain ve NULL kararlarını açıklayan kısa rapor, actual plan ve IO ölçümü. Bu lab’da dokuz ücretli sipariş ve 95090 gelir beklenir. İki Pending ve bir Cancelled sipariş gelirden dışlanır. Kontrol toplamı yanlışsa güzel grafik hazırlamadan önce JOIN çoğalmasını ve durum filtresini araştır. İleri görev olarak aylık cohort veya müşteri RFM görünümü ekle; lab’da olmayan trafik ve kâr verisini uydurma.

NERESİNDE KULLANIRSIN?

Bilgi ile üretilebilir iş çıktısını birleştirmek için.

SIK YAPILAN HATA

Kontrol toplamı olmadan dashboard’a güvenmek.

01 / UYGULAMA

Aynı konu. Üç farklı derinlik.

T-SQL / SQL Server 2019+
SELECT COUNT(*) AS PaidOrders FROM lab.SalesOrder WHERE Status = 'Paid';

İlk kontrol sonucu dokuzdur.

Bu sayfa SQL çalıştırmaz. Örnekleri indirilebilir SqlStudioLab veritabanında, SSMS’de uygula. Geçici tablo örneklerini yeniden çalıştırırken yalnız ilgili #tabloyu temizle. VIEW, procedure ve function örnekleri lab’da kalıcı nesne oluşturur; üretim bağlantısı kullanma.

02 / SIRA SENDE

Önce kendin dene.

Aylık ücretli sipariş ve gelir raporu hazırla; toplamı doğrula.

Çözümü ve açıklamasını göster
Açıklamalı çözüm
WITH T AS (SELECT OrderId, SUM(Quantity * UnitPrice) AS Total FROM lab.OrderItem GROUP BY OrderId) SELECT DATEFROMPARTS(YEAR(o.OrderDate), MONTH(o.OrderDate), 1) AS MonthStart, COUNT(*) AS PaidOrders, SUM(t.Total) AS Revenue FROM lab.SalesOrder AS o JOIN T AS t ON t.OrderId = o.OrderId WHERE o.Status = 'Paid' GROUP BY DATEFROMPARTS(YEAR(o.OrderDate), MONTH(o.OrderDate), 1) ORDER BY MonthStart;

Ocak 2/33760, Şubat 1/1350, Mart 3/18400, Nisan 3/41580. Toplam 9/95090.