从表中选择项目并在2天内按金额订购?

时间:2018-06-10 20:10:09

标签: mysql

例如我有下表:

 ---------------------
|  amount |   date    |
 ---------------------
|  50     |   Day 1   |
|  60     |   day 2   |
|  20     |   day 3   |
|  25     |   day 3   |
|  23     |   day 4   |
|  26     |   day 4   |
|  15     |   day 5   |
 ---------------------

我基本上想要做的是从最近2天检索项目并按最大金额订购该行。所以结果就像:

 ---------------------
|  amount |   date    |
 ---------------------
|  26     |   day 4   |
|  23     |   day 4   |
|  15     |   day 5   |
 ---------------------

仅供参考:上面的2018-06-10 14:37:44模式输入日期只是一个例子

我试过了:SELECT AMOUNT FROM table WHERE AMOUNT=(SELECT MAX(AMOUNT) FROM table) ORDER BY DATE;

但我获得的结果仅为| 60 | day 2 |,这是最高金额,而不是最近2个日期;

2 个答案:

答案 0 :(得分:0)

试试这个:

SELECT amount, date FROM table WHERE date >= DATE_ADD(CURDATE(), INTERVAL -2 DAY) ORDER BY amount DESC;

-- date > DATE_ADD(CURDATE(), INTERVAL -2 DAY) will give you all rows within 2 days
-- ORDER BY amount DESC will give you ordered by amount descending

答案 1 :(得分:0)

您可以使用DATE_ADD功能,在CURDATE()的某个时间之后为您提供日期,以便为您提供当前日期;

SELECT * FROM table WHERE date >= DATE_ADD(CURDATE(), INTERVAL -2 DAY)
ORDER BY amount DESC;