按年份和月份分组数据

j2cgzkjk  于 2021-06-20  发布在  Mysql
关注(0)|答案(3)|浏览(327)

我有一个有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

你知道怎么解决吗?
谢谢您

0ve6wy6x

0ve6wy6x1#

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

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

iugsix8n2#

如果你储存 dateAdded 作为20180730,看起来像是一个字符串,所以它不会与 DATE_FORMAT 函数,可以使用 SUBSTRING 相反
像这样的

SELECT dateAdded, SUM(quantity), SUBSTRING(dateAdded, 1, 6) as d 
  FROM testTable 
 GROUP BY d
 ORDER BY dateAdded DESC
hvvq6cgz

hvvq6cgz3#

使用 year 以及 month 功能

SELECT Year(dateAdded) as YearOfDate,Month(dateAdded) as MonthOfdate,
         , SUM(quantity) as Qty
      FROM testTable 
     GROUP 
        BY Year(dateAdded), Month(dateAdded) 
     ORDER  BY dateAdded DESC

相关问题