Toplamın Yüzdesi
Coddy'nin SQL Journey'sinin Temellerin Ötesi bölümünün bir parçası — ders 24 / 27.
Her satırın bütündeki payı bir pencere fonksiyonu klasiğidir: satırın değerini, tüm pencere üzerindeki aynı sütunun SUM değerine bölün.
SELECT product, revenue,
revenue * 100.0 / SUM(revenue) OVER () AS pct
FROM salesBoş bir OVER (), "tüm sonuç kümesi" anlamına gelir. Bunun yerine bir grup içindeki payı hesaplamak için bir PARTITION BY ekleyin (örneğin her kategori içindeki pay için OVER (PARTITION BY category)).
Bölme işleminin float kalması için 100.0 (100 değil) ile çarpın. Aksi takdirde SQLite'ın tamsayı bölmesi (integer division) küçük payları sıfıra yuvarlar.
Görev
KolayMevcut tablolar ve sütunlar:
<strong>sales</strong>:<strong>category</strong>,<strong>product</strong>,<strong>revenue</strong>
Her satır için şunları döndürün:
categoryproductrevenuepct_of_category: ürünün kendi kategorisi içindeki gelir payı, ondalık basamağı 1'e yuvarlanmış olarak
Pencere üzerinde bir PARTITION BY kullanın. Önce category, ardından azalan düzende pct_of_category şeklinde sıralayın.
Kendin dene
SELECT category, product, revenue,
-- kategori içindeki pay olarak pct, PARTITION BY kullanın
FROM sales
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Temellerin Ötesi bölümündeki tüm dersler
2String Fonksiyonları
LENGTH, UPPER, LOWERSUBSTRINSTRREPLACE ve TRIM|| ile BirleştirmeÖzet - Faturalar6Analitik Tarifleri
Grup Başına İlk NToplamın YüzdesiKümülatif ToplamAnahtar Başına Tek Satır TutmaÖzet - En İyi Müşteriler