CASE ile SUM
Coddy'nin SQL Journey'sinin Temellerin Ötesi bölümünün bir parçası — ders 13 / 27.
Aynı fikir SUM ile de çalışır: ve hatta daha esnektir. CASE, eşleşen satırlar için 1 ve diğer her şey için 0 döndürebilir veya satırları farklı şekilde ağırlıklandırmak için herhangi bir sayısal değer döndürebilir.
SELECT
SUM(CASE WHEN status = 'active' THEN 1 ELSE 0 END) AS active_count,
SUM(CASE WHEN plan = 'pro' THEN amount ELSE 0 END) AS pro_revenue
FROM usersSUM(CASE … THEN 1 ELSE 0 END) ve COUNT(CASE … THEN 1 END) sayma işlemi için aynı sonucu verir; ekibinizin tercih ettiği stili seçin.
Görev
KolayMevcut tablolar ve sütunlar:
<strong>transactions</strong>:<strong>id</strong>,<strong>category</strong>,<strong>type</strong>,<strong>amount</strong>
type ya 'sale' ya da 'refund' değerini alır. Her bir category için şunları döndürün:
categorynet_revenue: satış tutarlarının toplamı eksi iade tutarlarının toplamı
İadelerin tutarlarını negatif bir sayı olarak hesaba kattığı tek bir SUM(CASE …) ifadesiyle net_revenue değerini hesaplayın. net_revenue değerine göre azalan düzende sıralayın.
Kendin dene
SELECT category,
-- iadelerin negatif sayıldığı bir SUM(CASE ...)
FROM transactions
GROUP BY category
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 - Faturalar