首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用mysql来确定去年的星期日?

问如何使用mysql来确定去年的星期日?
EN

Database Administration用户
提问于 2019-01-19 15:20:45
回答 1查看 530关注 0票数 0

我有一个表,目前我正在聚合每天200行的统计数据。这些统计数据包括用户#、使用X功能的人数等。

我想要做的是查询这个表,因此以这样的方式总结数据:

  • 每天在过去的X天
  • 过去一年中的每周--从每个周日开始统计数据,并把当前的一天(假设今天不是周日)
  • 在过去的X年每月-从每个月的最后一天的统计数据,并拉动当前的一天(假设今天不是一个月的最后一天)

栏:

  • date是数据聚合的日期。
  • value是我需要显示的数值(例如-#的用户)

我希望用零填充空记录/日期,所以我需要使用mysql生成日期,然后在可用的情况下加入匹配的记录。如何使用mysql来确定去年的星期日?

不幸的是,我无法提供我目前所做工作的一个例子,我仍在研究潜在的解决方案。我遇到的大多数查询都是按日期查询记录,而不是生成日期本身。

我的桌子结构:

代码语言:javascript
复制
CREATE TABLE `daily_stats` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `date` date NOT NULL,
  `stat` int(11) NOT NULL,
  `value` bigint(20) unsigned NOT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `daily_stats_date_stat_unique` (`date`,`stat`),
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
EN

回答 1

Database Administration用户

回答已采纳

发布于 2019-01-22 20:32:28

我没有足够的声誉来评论,但我认为这是你想要的。请参阅本文档中的“日期系列生成”。https://dev.mysql.com/doc/refman/8.0/en/with.html#common-table-expressions-recursive-date-series

启用日期序列生成的通用表表达式可在MySQL 8.0或MariaDB10.2.2中使用。如果您使用的是较早的版本,并且无法升级,我认为@McNets的回答是可行的。

票数 1
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/227565

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档