【发布时间】:2016-11-21 21:07:30
【问题描述】:
我正在处理一个小项目,并进行了以下设置:
MariaDB [b7_19195200_prices]> select * from watchlist;
+----+-------------+-------+---------------------+--------+
| id | item | price | recorded | errors |
+----+-------------+-------+---------------------+--------+
| 3 | 32725999014 | 1.46 | 2016-11-21 20:30:22 | 0 |
| 4 | 32725999014 | 1.93 | 2016-11-21 20:56:21 | 0 |
| 5 | 32725999014 | 2.01 | 2016-11-21 20:56:32 | 0 |
| 6 | 122444 | 22.43 | 2016-11-21 21:03:19 | 0 |
| 7 | 32725999014 | 1.11 | 2016-11-21 21:25:33 | 0 |
+----+-------------+-------+---------------------+--------+
5 rows in set (0.00 sec)
所以我想获得最高价格、最低价格和第一个(该商品价格的最早记录)。所以我会得到如下结果:
+----+-------+-------+-------------+----------+
| id | low | high | item | original |
+----+-------+-------+-------------+----------+
| 6 | 22.43 | 22.43 | 122444 | 12.11 |
| 3 | 1.11 | 2.01 | 32725999014 | 0.51 |
+----+-------+-------+-------------+----------+
其中 low、high 和 original 分别是商品的最低、最高和原始价格。一个好处是能够知道它什么时候最高和最低。我一直在使用 2 个不同的查询来获取最高、最低和原始价格:
SELECT `id`, MIN(`price`) low, MAX(`price`) high, `item`
FROM `watchlist`
GROUP BY `item`;
和
SELECT `id`, MIN(`recorded`), `price` original, `item`
FROM `watchlist`
GROUP BY item;
反正我能做到吗?
谢谢!
【问题讨论】:
-
您的价格数据类型是 DECIMAL,对吧?
-
不,不是。我把它写成 varchar
-
好的。也许可以解决这个问题!