2016-03-19 11 views
0

Ich habe Spalten namens order_id und purchase_amount, und ich muss eine Abfrage schreiben, um zu zählen, wie viele Aufträge innerhalb jedes inkrementellen Bereichs von $ 100 zusammen mit den Werten des Bereichs fallen. Zum Beispiel, es muss etwas wie 12 Aufträge sind zwischen 0-100 $, 9 Aufträge sind zwischen $ 101-200 und weiterhin auf diesem Weg, Erhöhung von jeweils 100 $ jedes Mal, wie unten. Und ich bin ratlos, wie ich anfangen soll.Wie kann ich die Anzahl der Aufträge, die in den inkrementellen Bereich fallen, zurückgeben?

Anzahl | Bereich

12 | $ 0-100

9 | $ 101-200

Antwort

0

Betrachten Sie die SQL-Funktion SUM kombiniert mit CASE, um eine Bedingung zu erstellen.

Select SUM(CASE WHEN OrderValue >= 0 AND OrderValue < 100 THEN 1 ELSE 0 END) AS Count FROM Table; 

Das sollte Ihnen einen Ausgangspunkt geben.

0

Sie keine Quellentabellendaten Probe vorsah, damit ich die Standard-Tabelle Bestellungen aus dem TPCH verwendet haben folgendes zu bauen: beantworten

select 
    case 
     when o_totalprice < 1000 then '1k-' 
     when o_totalprice >= 1000 and o_totalprice < 5000 then '1k-5k' 
     when o_totalprice >= 5000 and o_totalprice < 10000 then '5k-10' 
     when o_totalprice >= 10000 and o_totalprice < 20000 then '10k-20k' 
     when o_totalprice >= 20000 and o_totalprice < 50000 then '20k-50k' 
     else '50k+' 
    end as 'Range', 
    count(*) as 'Range-Count' 
from 
    orders 
group by 1 
; 

Hoffnung Ihre Frage ...

Verwandte Themen