【发布时间】:2021-06-12 13:22:29
【问题描述】:
我使用的是 MySQL 5.6,并且我有一个包含很多这样的记录的表...
+----+------------+-------+
| id | date | price |
+----+------------+-------+
| 1 | 2000-01-01 | 1.56 |
| 1 | 2000-01-05 | 1.90 |
| 1 | 2000-02-02 | 1.44 |
| 2 | 2000-01-01 | 10.99 |
| 2 | 2000-01-07 | 9.88 |
| 2 | 2000-02-01 | 9.64 |
+----+------------+-------+
对于每个 ID,我想返回以下内容...
- 身份证
- 最短日期 >= 1 个月前
- 最大日期
- 价格的百分比差异,基于返回的 2 个日期的价格
- 甚至可以显示这些日期的价格
例如如果表数据是(今天是 2000-02-01)...
+----+------------+-------+
| id | date | price |
+----+------------+-------+
| 1 | 2000-01-01 | 1.00 |
| 1 | 2000-02-01 | 1.10 |
| 2 | 2000-01-04 | 1.00 |
| 2 | 2000-02-01 | 2.00 |
+----+------------+-------+
那么我希望看到......
+----+------------+------------+------------+
| id | min | max | percentage |
+----+------------+------------+------------+
| 1 | 2000-01-01 | 2000-02-01 | 10% |
| 2 | 2000-01-04 | 2000-02-01 | 100% |
+----+------------+------------+------------+
所以我的问题是,我该怎么做?更重要的是,解决这个问题的合乎逻辑的步骤是什么?
【问题讨论】:
-
请将示例数据格式化为更易读的代码
-
另外,请添加您尝试的 SQL。
-
@Patriot,当我在提交之前查看它时看起来一切都很好,但是一旦提交它看起来很糟糕。我现在改了。
-
@Wannabe-Coder SO 会删除换行符,除非您将文本包含在代码块中。
-
@Raky,对不起,我沮丧地把这一切都装箱了 :-( 我设法得到的最好的方法是获得最小/最大日期,但我无法进一步了解。
标签: mysql calculation