Menu
Coddy logo textTech

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 sales

Boş 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.

challenge icon

Görev

Kolay

Mevcut 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:

  • category
  • product
  • revenue
  • pct_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
quiz iconKendini test et

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