MySql 查询为折线图按日期分组的同一列返回不同的别名

标签 mysql sql charts pivot

我正在尝试制作一些报告折线图,并发现如果我从查询中为折线图中显示的数据的每一列(日期)返回一个数据行,则最简单。挑战是我想要不止一条线。

以下是我可以使用简化的数据示例执行的操作:

    |  DATE      | SALES | LOCATION |
    | 2012-01-07 | 500   | 1        |
    | 2012-01-07 | 600   | 2        |
    | 2012-01-14 | 700   | 1        |
    | 2012-01-14 | 400   | 2        |
    | 2012-01-21 | 450   | 1        |
    | 2012-01-21 | 550   | 2        |

选择日期,总和(销售额)作为 SalesTotal1 FROM TABLE WHERE location = '1' 按日期分组

返回结果:

    |     DATE   | SalesTotal1 |
    | 2012-01-07 |     500     |
    | 2012-01-14 |     700     |
    | 2012-01-21 |     450     |

如果我的图表中只有一行,但我真正想要的同一列的多个别名仍然按日期分组,这将返回以下内容:

    |     DATE   | SalesTotal1 | SalesTotal2 |
    | 2012-01-07 |     500     |     600     |
    | 2012-01-14 |     700     |     400     |
    | 2012-01-21 |     450     |     550     |

这可能吗?子查询?我已经尝试了很多东西,谢谢〜

最佳答案

你可以这样做:

SELECT `date`, 
       SUM(IF(location=1,sales,0)) As SalesTotal1,
       SUM(IF(location=2,sales,0)) As SalesTotal2
FROM my_table
GROUP BY `date`

您必须添加与位置一样多的列,如果您有很多位置,那就很烦人了。也许您可以考虑在代码方面进行重新安排(如果您有很多很多位置)?

关于MySql 查询为折线图按日期分组的同一列返回不同的别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9627935/

相关文章:

sql - 聚合 SQL 中两列中具有相同值的行数

PHPlot 仅显示 MySQL 的 3 个结果中的 2 个

php - 无法从选择查询中的表中获取所有数据

mysql - 如何查看 MemSQL 或 MySQL 中的所有查询?

php - 在wordpress中查找并打印mysql的主机名

php - 为什么我的 DataTables 实现无法与 ColumnDefs 一起正常工作?

mysql - 使用 INSERT INTO 和 SELECT 将不同表中的不同行添加到另一个表中

sql - 获取具有列组合的记录

javascript - 如何使用嵌套数据通过 d3.chart 制作多个图表

charts - 如何在 flutter、x 轴和 y 轴上向图表添加名称?