代码之家  ›  专栏  ›  技术社区  ›  trulex

统计每日项目

  •  1
  • trulex  · 技术社区  · 7 年前

    我使用下面的命令来获取日常物品。 列日期是Unix时间戳。

    SELECT FROM_UNIXTIME(date) as datetime, COUNT(id) AS total 
    FROM items 
    WHERE cat_id = 3 
    GROUP BY datetime 
    HAVING datetime BETWEEN DATE_FORMAT(NOW() ,'%Y-%m-01') AND NOW()
    

    结果是:

    日期时间总计

    2019年1月11日09:39:12 1

    2019年1月11日09:44:35 1

    2019年1月11日09:47:55 1

    2019年1月15日14:33:00 1

    2019年1月15日14:34:31 1

    2019年1月17日14:39:26 1

    实际上,我在寻找第二个结果:

    日期时间总计

    2019年1月11日09:39:12 3

    2019年1月15日14:33:00 2

    2019年1月17日14:39:26 1

    2 回复  |  直到 7 年前
        1
  •  0
  •   Mad Dog Tannen    7 年前

    改变你 GROUP BY GROUP BY DATE(datetime)

        2
  •  1
  •   Mad Dog Tannen    7 年前

    你应该按日期分组,而不是按时间分组

    SELECT  
      DATE(FROM_UNIXTIME(`date`)) AS `datetime`,
      COUNT(`id`) AS `total`
    FROM `items`
    WHERE `cat_id` = 3
    GROUP BY DATE(datetime)
    HAVING datetime BETWEEN DATE_FORMAT(NOW(), '%Y-%m-01') AND NOW()