2016-03-19 8 views
0

私はorder_idとpurchase_amountという列を持っています。範囲の値と共に$ 100の各インクリメンタル範囲内の注文の数を数えるためにクエリを書く必要があります。たとえば、12の注文が$ 0-100の間にあるようなものを返さなければならない。9つの注文は$ 101-200の間であり、そのように続き、毎回$ 100ずつ増加する。そして、私はどのように始めるべきか分かりません。増分範囲内の注文数を返すにはどうすればよいですか?

Count |範囲

12 | $ 0-100

9 | $ 101-200

答えて

0

CASEと組み合わせたSQL関数SUMを使用して条件を作成します。

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

これは出発点になるはずです。

0

私は次のように構築するためにTPCHから標準テーブルの受注を使用しなかったので、あなたは任意のソーステーブルのデータサンプルを提供していませんでした:これは、あなたの質問に答える

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 
; 

ホープ...

関連する問題