Sobes.tech
Junior

Perakende Mağazada Kategoriye Göre Satış Analizi Perakende mağazada analist olarak çalışıyorsunuz. Göreviniz, aşağıdaki hesaplamaları içeren kategori bazında satış raporu hazırlamaktır: • kategoride satılan toplam birim sayısı (total_units_sold); • indirimleri dikkate alarak kategori başına toplam gelir, burada indirim, unit_price × units_sold × (1 − discount/100) olarak hesaplanır. Eğer indirim yoksa (NULL), %0 kabul edilir. İki ondalık basamağına yuvarlayın; • bir satışta satılan ortalama birim sayısı (avg_units_per_sale), iki ondalık basamağına yuvarlanmış; • indirimsiz satışların oranı (no_discount_share) — NULL veya %0 indirimli satışların sayısı, kategori içindeki toplam satış sayısına bölünür ve üç ondalık basamağına yuvarlanır. Sonuçları önce toplam gelir (total_revenue) azalan sırayla, sonra ortalama birim sayısı (avg_units_per_sale) artan sırayla ve en sonunda kategori adına göre alfabetik sıralayın. Giriş Formatı Sales tablosu: • sale_id (int) — satışın benzersiz kimliği • product_id (int) — ürün kimliği • category (text) — ürün kategorisi • sale_date (timestamp) — satış tarihi ve saati • units_sold (int) — satılan birim sayısı • unit_price (numeric) — birim fiyatı • discount (numeric) — ürün üzerindeki indirim yüzdesi, NULL olabiliyor discount sütunu boş değerler içerebilir. Çıkış Formatı Sorgu, aşağıdaki alanları sırasıyla içeren bir tablo döndürmelidir: • category (text) — ürün kategorisi • total_units_sold (int) — bu kategoride satılan toplam birim sayısı • total_revenue (numeric) — kategoriye göre toplam gelir, iki ondalık basamağıyla yuvarlanmış • avg_units_per_sale (numeric) — bir satış başına ortalama birim sayısı, iki ondalık basamağıyla yuvarlanmış • no_discount_share (numeric) — indirim olmadan satışların oranı (0 ile 1 arasında), üç ondalık basamağıyla yuvarlanmış Sonuç, önce total_revenue azalan şekilde, sonra avg_units_per_sale artan şekilde ve en sonunda kategori adına göre alfabetik sıralanır.

sobes.tech yapay zeka

AI'dan gelen yanıt

sql SEÇİM kategori, SUM(satılan_birim) OLARAK toplam_birim, ROUND(SUM(birim_fiyatı * satılan_birim * (1 - COALESCE(indirim, 0) / 100.0)), 2) OLARAK toplam_gelir, ROUND(AVG(satılan_birim), 2) OLARAK ortalama_birim_satış, ROUND( SUM(CASE WHEN indirim NULL OYSA indirim = 0 THEN 1 ELSE 0 END)::numeric / COUNT(*), 3 ) OLARAK indirimsiz_oran FROM satışlar GRUPLA KATEGORİYE GÖRE SIRALA toplam_gelir DESC, ortalama_birim_satış ASC, kategori ASC;