【问题标题】:Get last 4 weeks records by day grouped by weeks按天获取最近 4 周的记录,按周分组
【发布时间】:2015-12-26 10:20:18
【问题描述】:

我需要一个查询,允许我从 MySQL 表中选择最近 4 周的数据,但输出为从 4 周前的星期一开始的天数,而与一周中的当前日期无关。

数据库有一个用户表,一个活动表,它有一个用户 ID 的 FK。 一个带有对 activityID 的 FK 的 activityStats 表

查询将用于创建类似于以下内容的数组:

$array = [
   "userid" => "userid",
   "dateAdded" => "dateAdded",
   "week1" => $array = [
      "monday" => $array = [
         "activityid" => "1",
         "time" => "21",
         ...
      ]
      "tuesday" => $array = [
         "activityid" => "2",
         "time" => "16",
         ...
      ]
      "wednesday" => $array = [
         "activityid" => "3",
         "time" => "16",
         ...
      ]
      ...
   "week2" => $array = [
      "monday" => $array = [
         "activityid" => "8",
         "time" => "21",
         ...
      ]
      "tuesday" => $array = [
         "activityid" => "9",
         "time" => "16",
         ...
      ]
      "wednesday" => $array = [
         "activityid" => "10",
         "time" => "16",
         ...
      ]
      ...
   ]
   ...
];

我可以创建多个查询来解决问题,但可能需要 10 周或 52 周,单独的查询可能无法缩短。

不知道从哪里开始。

【问题讨论】:

    标签: php mysql


    【解决方案1】:

    假设您的时间戳列名为timestamp,您可以:

    SELECT CONCAT(YEAR(timestamp), '/', WEEK(timestamp)) AS week

    然后检索特定范围、按周排序等。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-06
      • 1970-01-01
      • 1970-01-01
      • 2021-11-04
      • 2019-12-12
      • 1970-01-01
      相关资源
      最近更新 更多