2017-07-15 22 views
2

我有一個表與下面的設計數據的總和:SELECT COUNT和另一列的不同範圍

SaleDataTbl:

  • ID
  • ColumnA
  • ColumnB
  • ColumnC

ColumnA ha不同的值,我想將它們分爲4個範圍:[0-100) , [100-200), [200-300), [300-400],我想要提及的每個範圍的行數,以及每個範圍的總和ColumnBColumnC。我可以通過多個查詢來完成,但是我可以只用一個查詢來完成嗎?

在此先感謝

回答

2

這並不比聚合查詢更多:

select grp, count(*), sum(columnb), sum(columnc) 
from (select t.*, 
      (case when columnA < 100 then '[000-100)' 
        when columnA < 200 then '[100-200)' 
        when columnA < 300 then '[200-300)' 
        when columnA < 400 then '[300-400)' 
       end) as grp 
     from t 
    ) t 
group by grp 
order by grp; 

注:

  • 我懷疑你真的想包括的範圍。爲什麼「100」會出現在兩個桶中?
  • 子查詢不是真的有必要。它突出了範圍的定義。
  • 我真的沒有看到一種自然的方式將其拆分爲多個查詢。
+0

@ Peyman.H。 。 。這是標準的SQL,應該適用於任何數據庫。 –