我只需要返回具有最高变化百分比的结果。表看起来像
item price1 price2
a 1 2
b 3 5
c 2 3
我只想要它返回一个,像这样:
item price1 price2 percent_change
a 1 2 200%
我试过这个
select item, price1, price2, max(a.mPrice) as my_output from (select item,
((price2-price1)/price1) * 100 as mPrice from table) a
但它说的是整数是无效的(假设是a.mPrice
)。我已经尝试使用having
来检查最大值,但是这不起作用,它仍然会返回所有结果。
我觉得我错过了一些非常明显的东西,但我想不出它是什么。我猜测使用max(a.mPrice)实际上不会像我需要的那样获得最大值,但我不知道还能做什么。
答案 0 :(得分:0)
您的表格a
除了item
和mPrice
之外没有任何内容,因此在外部查询中抓取price1
和price2
不起作用。
但即使没有这样的子查询,你也可以做到这一点
SELECT item, price1, price2, ((price2-price1)/price1)*100 as growth
FROM products
ORDER BY growth DESC
LIMIT 1;
首先,选择所有三个属性并计算增长率,然后按增长率下降排序,只取最高值。
答案 1 :(得分:0)
如果您只想要最大百分比
,则进行简单查询SELECT item, price1, price2, MAX(((price2-price1)/price1) * 100) percent_change FROM items
答案 2 :(得分:0)
我明白了。
select item, price1, price2, ((price2 - price1)/price1) * 100 as my_output from table
group by item, price1, price2
having ((price2 - price1)/price1) * 100 = (select( max(((price2 - price1)/price2) * 100)) from table)
它很麻烦,但我需要它。