mysql 分组百分比,分组与差异百分比MySQL

我一直在尝试查询按特定范围分组的产品的增加百分比,具体取决于每次运行的实际增长.例如,我有以下表模式

现在,如果我查询增加百分比,我会得到类似的东西:

SELECT *, (((newPrice - price)/price) * 100 ) as PERCENTAGE FROM Product

我想要获得的是根据计算的增加将值分组到特定范围内.所以这次运行是这样的:

| Range | #COUNT |

| 0-10% | 3 |

| 30-40% | 1 |

以及更多范围和产品(如果存在)

我试过了:

Select *, COUNT(idProduct) AS COUNT FROM Product

where (((newPrice - price)/price) * 100 ) BETWEEN 0 AND 10

这给了我:

但我需要以一种可以确定合理百分比范围的方式配置查询(即,不对硬件编码0和10之间的值进行硬编码),并将其中的值分组以用于不同的运行.有任何想法吗?

谢谢!

产品表

CREATE TABLE `product` (

`idproduct` INT NOT NULL ,

`description` VARCHAR(45) NULL ,

`price` INT NULL ,

`newPrice` INT NULL ,

PRIMARY KEY (`idproduct`) );

解决方法:

您可以按10%的百分比分组:

SELECT floor((newPrice - price) / price * 10) * 10 as LowerBound

, floor((newPrice - price) / price * 10) * 10 + 10 as HigherBound

, count(*) as Count

FROM Product

GROUP BY

floor((newPrice - price) / price * 10)

乘以10并向下舍入应该每10个百分点创建一个组.

标签:mysql,sql

来源: https://codeday.me/bug/20190721/1495047.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值