我尝试从 mysql 表“sells”构建图表。每个月(“日期”列),3 个用户(“用户”列)保存一个值(“值”列)。
id | user | date | value
--------------------------------
1 | 1 | 2014-01-01 | 556
2 | 2 | 2014-01-01 | 703
3 | 3 | 2014-01-01 | 200
4 | 1 | 2014-02-01 | 240
5 | 2 | 2014-02-01 | 950
6 | 3 | 2014-02-01 | 120
7 | 1 | 2014-03-01 | 450
8 | 2 | 2014-03-01 | 560
9 | 3 | 2014-03-01 | 704
10 | 1 | 2014-04-01 | 208
11 | 2 | 2014-04-01 | 254
....
我尝试构建一个图表,显示选定的用户和给定的时间间隔: - 所选用户的个人值(value) - 所有用户之间的最小值 - 所有用户之间的最大值
这是我尝试为用户“1”获取此结果的方法:
date | value | min | max
--------------------------------
2014-01-01 | 556 | 200 | 703
2014-02-01 | 240 | 120 | 950
2014-03-01 | 450 | 450 | 704
2014-04-01 | 208 | 208 | 254
...
我认为可以通过单个 mysql 查询得到这个结果,但我没能做到。有人吗?
最佳答案
SELECT x.*
, min_value
, max_value
FROM my_table x
JOIN
( SELECT date
, MIN(value) min_value
, MAX(VALUE) max_value
FROM my_table
GROUP
BY date
) y
ON y.date = x.date
ORDER
BY x.user
, x.date;
关于Mysql 重组图表数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23544952/