【问题标题】:MySQL filter results by month and yearMySQL 按月和年过滤结果
【发布时间】:2013-11-01 17:34:13
【问题描述】:

我的表格显示了各个国家/地区进行的搜索量以及进行这些搜索的日期,我想要一个查询来显示 2012 年和 2013 年每个月进行的搜索,我需要添加单独的列月、年和搜索次数。我之前使用过下面的查询,它返回每周进行的搜索量,但我想将其更改为仅 2012 年和 2013 年每月进行的搜索量。

SELECT COUNT(*) as `count`,
      `region`, 
       DATE(NOW()) as `week_ending` 
   FROM my_stores.stats 
        WHERE `date` > DATE_ADD(DATE(NOW()), INTERVAL -1 WEEK) 
               AND 
              `date` < DATE(NOW()) 
 GROUP BY `region`, DATE(NOW());

【问题讨论】:

    标签: mysql sql database


    【解决方案1】:

    只需使用MONTH()YEAR() 函数

    SELECT COUNT(*) as `count`,
          `region`, 
           YEAR(`date`) as `year`,
           MONTH(`date`)  as `month`
       FROM my_stores.stats 
            WHERE  YEAR(`date`) in (2012,2013)
     GROUP BY `region`, YEAR(`date`),MONTH(`date`)
    

    【讨论】:

      【解决方案2】:
      SELECT COUNT(*) as `count`,
            `region`, 
             MONTH(`date`),
             YEAR(`date`)
      FROM my_stores.stats 
      GROUP BY `region`, MONTH(`date`), YEAR(`date`);
      

      【讨论】:

      • 一年的条件缺失
      • 是的,我知道 ;-),请参阅 valex 的答案。
      猜你喜欢
      • 2014-11-05
      • 2023-03-29
      • 2014-02-12
      • 2017-02-09
      • 1970-01-01
      • 1970-01-01
      • 2013-03-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多