Mysql 重组图表数据

标签 mysql

我尝试从 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/

相关文章:

mysql - 无法将 INSERT 语句放入 SQL Fiddle 上的 TRIGGER 主体内

mysql - 如何从 MY SQL 选择查询中删除整数逗号

mysql - 需要有关根据用户选择对图库进行排序的 sql 查询的帮助

mysql - percona 工具 pt-trend 输出含义?

mysql - 在字符串中查找表的数据

mysql - 如何根据另一列的值在 SQL 选择查询中创建/添加列?

php - 如何为 php 启用 mysqlnd?

仅当 count() as col1 <> col2 时,mySQL 选择行

mysql - SQL查询根据ID聚合记录

mysql - 如何为具有逗号分隔值的字段设置 'where' 子句?