【问题标题】:MySQL count and group by dayMySQL按天计数和分组
【发布时间】:2012-05-10 20:19:32
【问题描述】:

我有以下结构

ID    DATE(DATETIME)         TID
1     2012-04-01 23:23:23    8882

我正在尝试计算行数并按每月匹配 TID = 8882 的每一天对它们进行分组

谢谢

【问题讨论】:

  • 你尝试过什么吗?或者你只是在等待整个代码?每天将它们分组是什么意思?你的意思是按日期分组?
  • 当您说“按天分组”时……您是指一个日期内的所有项目吗?或者您想将属于不同月份的同一天的项目分组(例如 1 月 1 日和 2 月 1 日,以及 3 月 1 日)?

标签: mysql sql


【解决方案1】:

您可以使用DAY 函数进行分组:

SELECT DAY(Date), COUNT(*)
FROM table
WHERE TID = 8882
GROUP BY DAY(Date)

【讨论】:

  • 这对我帮助很大,因为我错过了 Day() 说唱歌手。我实际上需要 date(),但你的回答让我找到了我的解决方案。 +1
【解决方案2】:

不确定您所说的月份中的某天是什么意思 - 您想将 2 月 1 日与 3 月 1 日归为一组吗?或者你只是说约会?假设是后者,这个怎么样:

SELECT DATE(date) as d,count(ID) from TABLENAME where TID=8882 GROUP by d;

【讨论】:

    【解决方案3】:

    试试这个查询:

    SELECT COUNT(id), DAY(dat), MONTH(dat), YEAR(dat) 
    FROM table
    WHERE TID=8882
    GROUP BY YEAR(dat), MONTH(dat), DAY(dat);
    

    【讨论】:

      【解决方案4】:

      试试这个:

      SELECT DAY(date) AS `DAY`,  COUNT(1) AS `COUNT` FROM
      table1 
          WHERE TID = 8882
      GROUP BY DAY(date)
      

      MySQL Query GROUP BY day / month / year

      【讨论】:

        【解决方案5】:

        计算每个日期:

        SELECT date(created_at), COUNT(*)
        FROM message_requests
        GROUP BY date(created_at)
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-10-06
          • 1970-01-01
          • 2011-06-13
          • 1970-01-01
          • 2011-07-21
          • 1970-01-01
          相关资源
          最近更新 更多