通过行之间的差异获得前5个结果

时间:2017-03-08 21:27:50

标签: mysql sql mysqli

我想知道这是否甚至可以纯粹用MySQL做。

前5个列表,在同一数据点的2个不同条目之间进行了大多数改进。

2

我基本上需要它按顺序返回32,因为3提高了1以上。

{{1}}不应该是结果,因为它在几年之间没有改善。

2 个答案:

答案 0 :(得分:2)

在此处查看:http://rextester.com/TBX28881

select      f1.id, (f2.amount - f1.amount) balance
from        foot f1
inner join  foot f2
on          f2.id = f1.id
and         f2.year = 2017
where       f1.year = 2016
order by    balance desc
limit       5;
;

id | balance
---- --------
 2    3000
 3     100
 1   -1000

答案 1 :(得分:1)

诀窍是将表连接到自身。

SELECT y1.id, (y1.amount - y0.amount) AS improvement
FROM yrtable AS y1
JOIN yrtable AS y0 ON y0.id = y1.id
WHERE y0.year = y1.year + 1
    AND y0.amount > y1.amount
ORDER BY (y1.amount - y0.amount)