mysql - 基于两个数字的百分比变化,总数未知(MySQL)

标签 mysql

我有一个包含正常价格和折扣价的 MySQL 数据库。我正在尝试计算从这些数字中的最高数字到当前最低数字的百分比变化。

当正常价格低于折扣价格时,百分比不正确。

代码:

SELECT brand_price, brand_discount_price,
((brand_discount_price - brand_price)/brand_price) * 100 as percentage
FROM brand

我如何调整计算以考虑当前“总数”是哪一个?

我想我需要更改计算或有条件地比较最高/最低的两个数字并动态更改 SELECT?有什么想法吗?

示例数据:

brand_price     brand_discount_price percentage
8.7451          9.3345              6.73977427%
7.9537          7.9538              0.00125728%
4.5832          2.2482              -50.94693664%
3.2331          11.8412             266.24911076%

例子:

品牌价50 优惠价100

(100 - 50/50) * 100 = 100% 变化

品牌价100 优惠价50

(50 - 100/50) * 100 = -100% 变化 = 错误(?)

基本上,这是由于计算方式所致,因为我无法弄清楚如何插入更大的数字作为总数(我认为,百分比不是我擅长的)。

最佳答案

只需使用一个 if(虽然我不太确定为什么正常价格会低于折扣价格):

SELECT brand_price, brand_discount_price,
IF(brand_discount_price > brand_price, ((brand_discount_price - brand_price)/brand_discount_price) * 100, ((brand_price - brand_discount_price)/brand_price)*100)  as percentage
FROM brand

关于mysql - 基于两个数字的百分比变化,总数未知(MySQL),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15520174/

相关文章:

mysql - Sql 连接三表

android - 获取相同位置的数据并将其显示在 TextView 中

php - 如何将不同的逗号分隔值插入到mysql中的不同列中

mysql - Junit 在使用 session.save 但不在 MySQL 数据库表中插入数据时成功,尽管我也尝试刷新 session

php - 首先从一个表中选择 id,然后删除不在第二个表中的那些

php - 如果语句在函数中不起作用

php - codeigniter查询问题

mysql - 将数据划分到年度表中的触发器

子查询中的 MySql IN 子句问题

mysql - 获取mysql ORDER BY语句中行的排名