SQL Show在一列中定义范围并生成第二列

时间:2014-10-09 21:34:30

标签: sql teradata

这可能很简单,但我无法弄清楚。我尝试使用多个查询和UNION,但我只得到一个包含平均数量但没有ColumnA的列作为平均值与之相关的范围的参考。

我在TABLE1中有两个字段,ColumnA和ColumnB中的ColumnB。 ColumnA是价格,ColumnB有该价格的商品数量。

我想在ColumnA中定义范围,例如“其中ColumnA介于11和20之间作为范围1”“其中ColumnB介于21和30之间”等等......然后获取产品内的产品的平均数量价格范围。

例如,查询 结果看起来像:

ColumnA | ColumnB

范围1 | 15.9

范围2 | 16.7

范围3 | 19.8

非常感谢任何输入!

1 个答案:

答案 0 :(得分:1)

如果这些范围不重叠:

select 
   case
      when ColumnA between 11 and 20 then 'Range 1'
      when ColumnA between 21 and 30 then 'Range 2'
      ...
   end,
   avg(ColumnB)
from tab
group by 1