admin

sql查询将不同的项目分组到存储桶中

sql

我正在尝试编写一个查询,以返回价格落入特定时间段的商品数量的查询:

例如,如果我的表是:

item_name | price
i1        | 2
i2        | 12
i3        | 4
i4        | 16
i5        | 6

输出:

range   | number of item
0 - 10  |  3
10 - 20 |  2

到目前为止,我这样做的方式是

SELECT count(*)
FROM my_table
Where price >=0
and price <10

然后

SELECT count(*)
FROM my_table
Where price >=10
and price <20

然后将每次粘贴的结果复制到excel中。

在sql查询中有自动的方法吗?


阅读 151

收藏
2021-05-10

共1个答案

admin

Kerrek所描述的扩展选项,您可以根据案例/时间进行分组

select
      case when price >= 0 and price <= 10    then '  0 - 10'
           when price > 10 and price <= 50   then ' 10+ - 50'
           when price > 50 and price <= 100  then ' 50+ - 100'
           else 'over 100'
      end PriceRange,
      count(*) as TotalWithinRange
   from
      YourTable
   group by 1

此处,“ group by 1”表示您的select语句中的序号列…在这种情况下,为case / when为TotalWithinRange时。

2021-05-10