首页 > 解决方案 > 按年和月分组数据

问题描述

我有一个有 4 列的表:

 1. customerID
 2. dateAdded
 3. productID
 4. quantity

的格式dateAdded是这样的:( 20180730) YearMonthDay

我想按年和月对表中的行进行分组。

我尝试了下面的代码,但它不起作用。我仍然看到重复相同年份和月份的行,但日期不同。

SELECT dateAdded
     , SUM(quantity) 
  FROM testTable 
 GROUP 
    BY DATE_FORMAT(dateAdded, '%Y%m')
     , dateAdded 
 ORDER 
    BY dateAdded DESC

知道如何解决这个问题吗?

谢谢

标签: mysqlgroup-by

解决方案


不要按您不希望对数据进行分组的内容进行分组。由于您提供dateAdded作为要分组的参数,因此它将数据拆分,dateAdded并且您从年月分组中一无所获。从您用于分组的 select/groupby 中删除列,如下所示:

SELECT DATE_FORMAT(dateAdded, '%Y%m')
     , SUM(quantity) 
FROM testTable 
GROUP BY 
     DATE_FORMAT(dateAdded, '%Y%m')

推荐阅读