我正在尝试编写一个查询,该查询返回其价格属于certrain存储桶的商品数量:
例如,如果我的表是:
item_name | price
i1 | 2
i2 | 12
i3 | 4
i4 | 16
i5 | 6
Run Code Online (Sandbox Code Playgroud)
输出:
range | number of item
0 - 10 | 3
10 - 20 | 2
Run Code Online (Sandbox Code Playgroud)
到目前为止我这样做的方式是
SELECT count(*)
FROM my_table
Where price >=0
and price <10
Run Code Online (Sandbox Code Playgroud)
然后
SELECT count(*)
FROM my_table
Where price >=10
and price <20
Run Code Online (Sandbox Code Playgroud)
然后将每次粘贴我的结果复制到excel中.
是否有自动方法在SQL查询中执行此操作?
DRa*_*app 42
根据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
Run Code Online (Sandbox Code Playgroud)
这里,"group by 1"表示select语句中的序数列...在这种情况下,case/when为TotalWithinRange.
Ker*_* SB 21
您可以尝试按10单位价格分组:
SELECT COUNT(*) AS tally,
FLOOR(price/10) AS prange,
CONCAT(10*FLOOR(price/10), "-", 10*FLOOR(price/10)+9) AS rstr
FROM my_table
GROUP BY prange;
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
36806 次 |
最近记录: |