在mysql查询中对多个日期范围求和

2024-05-05

我有一个 MySql 表“产品”,包含三列:

Date | Product | Qty

我的目标是每周对每种产品的数量进行求和。

获取两个给定日期之间的 SUM 很容易:

SELECT SUM(qty) FROM products WHERE date >= '2010-01-01' AND date < '2011-01-1'

我可以使用以下内容在 Php 中生成周列表:

$today = date('Y-m-d', strtotime('last week Monday'));
$future = date('Y-m-d', strtotime('+90 days'));

$period = new DatePeriod(
 new DateTime($today),
 new DateInterval('P7D'),
 new DateTime($future)
);
foreach ($period as $key => $value) {
    $dates .= $value->format('Y-m-d');
}

是否有适用于按日期分组和求和的 MySql 查询?或者我在 Php 中循环会更好吗?


  • 您可以使用Year() https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html#function_year and Week() https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html#function_weekMySQL 中的函数,获取给定日期的年份和周数。Week()函数将返回从 0 到 53 的周数。因此,您将需要使用Year()如果您有跨越多年的数据,则可以同时使用。
  • 但随后,你就会更感兴趣了解相关周的开始日期和结束日期。这是我们可以使用一个非常有趣的函数的地方DayOfWeek() https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html#function_dayofweek。它返回给定日期的工作日索引(1 = 星期日,2 = 星期一,...,7 = 星期六)
  • 我们可以用Date_Add() https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html#function_date-add函数使用工作日索引值和实际日期值来确定给定日期的开始周日期和结束周日期。

尝试以下操作(如果一周从周日开始) :

SELECT 
  DATE_ADD(`date`, INTERVAL(1 - DAYOFWEEK(`date`)) DAY) AS week_start_date, 
  DATE_ADD(`date`, INTERVAL(7 - DAYOFWEEK(`date`)) DAY) AS week_end_date, 
  SUM(qty) 
FROM 
  products 
GROUP BY week_start_date, week_end_date 

如果一周从星期一开始,另一个方便的功能是WeekDay() https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html#function_weekday。它返回日期的工作日索引 (0 = 星期一,1 = 星期二,... 6 = 星期日).

尝试以下操作(如果一周从星期一开始) :

SELECT 
  DATE_ADD(`date`, INTERVAL(0 - WEEKDAY(`date`)) DAY) AS week_start_date, 
  DATE_ADD(`date`, INTERVAL(6 - WEEKDAY(`date`)) DAY) AS week_end_date, 
  SUM(qty) 
FROM 
  products 
GROUP BY week_start_date, week_end_date 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在mysql查询中对多个日期范围求和 的相关文章

  • 来自本地 XML 的模拟 SoapClient 响应

    我想用文件中的 XML 来模拟 SoapClient 的响应 我如何创建一个 stdClass 对象 就像 SoapClient 从文件返回一样 客户端已经包装了 SoapClient 因此可以轻松模拟响应 我的模拟是这样的 soapCli
  • JavaScript 中带前导零的数字发生变化

    我使用 print 语句从 php 调用 javascript 函数来打印 html 代码 并且传入一个整数 但是 在 php 中传递的值与 javascript 函数接收到的数字不匹配 我不知道为什么 这是调用 javascript 函数
  • 创建 Facebook 测试用户时访问令牌出现问题

    我正在尝试为我的 Facebook 应用程序创建测试用户 他们在 11 月份的博客文章 http developers facebook com blog post 429 中宣布了此功能 并在此处记录了该功能 http developer
  • 如何将 MySQL 查询输出保存到 Excel 或 .txt 文件? [复制]

    这个问题在这里已经有答案了 如何将 MySQL 查询的输出保存到 MS Excel 工作表 即使只能将数据存储在 txt文件 就可以了 From 将 MySQL 查询结果保存到文本或 CSV 文件中 http www tech recipe
  • Doctrine 1 和 Symfony 1 的多个主键?

    我已经知道在 Symfony 1 和 Doctrine 1 中不可能使用多个主键 但是你们知道有什么好的解决方法吗 除了多对多关系之外 原则 1 不适用于多列上的主键 但如果你想使用多对多关系 请像这样使用 BlogPost columns
  • Yii2 中 init() 和 __construct() 方法有什么区别

    init 方法 public function init construct method public function construct 那么 它们之间有什么区别 应该使用哪一个呢 init 是从以下对象扩展的任何对象的方法yii b
  • 无法在 .net core 2 中从 MySQL 构建“日期”类型列

    我已经开始了一个新的 net core 2 项目 我正在尝试将 MySQL 数据库导入实体框架 我使用此命令来搭建数据库 Scaffold DbContext server localhost port 3306 user id user
  • 选取散列第 N 个元素的最快方法

    我有一个大哈希表 带有字符串索引的数组 并正在寻找一个函数quickly从中选取第一个 理想情况下也是第 N 个 元素 array shift and reset 对于我的需求来说太慢了 UPDATE 我也不是在寻找基于引用的解决方案 该函
  • 具有更改用户代理上下文的 file_get_contents 不起作用

    我正在尝试获取页面的阅读数和点赞数 网址是 https mp weixin qq com s NPavBeHc8VdWXeSL6kfLRg https mp weixin qq com s NPavBeHc8VdWXeSL6kfLRg 您必
  • Windows iis 7.0 上的 APC 不稳定

    我的 IIS 非常不稳定 因为它总是由于某种与 APC 相关的原因而重新启动 服务器的规格如下 Intel R Xeon CPU 3GHZ 3GHZ 2GB RAM 64bit APC 和服务器规格 3 1 7 dev PHP Versio
  • PHP:在脚本完成之前获取输出

    我有一个名为 data php 的脚本 如下所示 do some stuff echo result do some other stuff eg database operations 我需要在另一个脚本中使用 data php 的输出
  • 简单的dom php解析获取自定义数据属性值

    HTML div class something ddsf PHP foreach dom gt find something data rel as this var dump this gt attr 我尝试了这个但错误 在其文档中找不
  • wordpress - 像 stackoverflow 中那样内嵌 ajax 注释

    我有一个 WordPress 博客 希望为人们提供与 stackoverflow 中添加评论相同的用户体验 有很多评论 ajax 插件 但我找不到一个可以使用的插件 它允许您在主页上内联 进入并添加评论 而无需先深入到单独的单个帖子页面 任
  • 在MySQL中生成随机字符串

    我正在尝试使用函数在 phpmyadmin 中获取随机字符串 我有以下代码 CREATE FUNCTION randomPassword RETURNS varchar 128 BEGIN SET chars ABCDEFGHIJKLMNO
  • AWS RDS MySql - 如何在设置“公开可用”后允许访问

    刚刚使用默认设置和用户 密码创建了新的 AWS RDS MySql 实例 我也将其设置为publicly available并在此过程中创建新的 VPC 目前无法从我的笔记本电脑连接到此 RDS mysql h endpoint u myu
  • mysql表中的数据非常大。即使 select 语句也需要很多时间

    我正在开发一个数据库 它是一个相当大的数据库 有 13 亿行和大约 35 列 这是我检查表状态后得到的结果 Name Table Name Engine InnoDB Version 10 Row format Compact Rows 1
  • 接口中的构造方法

    接口中的构造方法不好吗 为什么人们认为有人想要实例化接口 我们想要做的是强制实现者实现构造函数 就像其他接口方法一样 接口就像一个合同 假设我有一个接口 Queue 并且我想确保实现者创建一个带有一个参数的构造函数 该构造函数创建一个单例队
  • Doctrine DQL 从 join 返回平面数组

    我通过 DQL 中的常规 LEFT JOIN 选择 3 个实体 它们通过连接表关联 连接表还定义了实体以及带注释的关系 查询执行没有问题 但我的结果作为平面数组返回 我期望一个包含三个实体作为每个索引的数组元素的数组 SELECT e1 e
  • PDO语法错误

    我在一个项目中使用 PDO 但提交时出现语法错误 这是我的代码
  • 如何在 Carbon Laravel 中添加日期和另一个日期?

    在我的 laravel 项目中 我想将日期时间增加到前一个日期时间 这是我的代码 expire order 0 gt expire date new Carbon now gt addMonths 6 这两行的结果是 2018 01 28

随机推荐

  • invoke_result获取模板成员函数的返回类型

    如何获取模板成员函数的结果类型 下面的最小示例说明了该问题 include
  • 使用 Angular JS 使图像出现在弹出窗口上

    这是我在 StackOverflow 上的第一篇文章 我正在自学 Angular 所以我是一个初学者 目前很困惑 我正在使用 Angular 创建一个网页 其中一个页面涉及一个按钮和一个弹出窗口 我想将图像放入弹出窗口中 但在实现此操作时遇
  • jQuery Deferred - 向 Deferred 合约添加回调

    我正在尝试在现有 Deferred 的状态设置为成功之前向其合约添加另一个异步调用 不要尝试用英语解释这一点 请参阅以下伪代码 when ajax url someUrl data data async true success funct
  • 用于电子邮件和文件日志记录的 Symfony2 Monolog 设置

    我想设置 Symfony2 向我发送电子邮件critical错误 但只需记录error级别错误 下面的设置可以做到这一点吗 monolog handlers main type fingers crossed action level er
  • 如何使用 swift flatMap 从数组中过滤掉选项

    我对 flatMap 有点困惑 添加到 Swift 1 2 假设我有一些可选类型的数组 例如 let possibles Int nil 1 2 3 nil nil 4 5 在 Swift 1 1 中 我会做一个过滤器 然后是一个像这样的地
  • 如何用 Scala 编写毕达哥拉斯定理?

    直角三角形斜边的平方等于另外两条边的平方和 这就是毕达哥拉斯定理 根据斜边长度 a 和 b 计算斜边的函数将返回 sqrt a a b b 问题是 您如何在 Scala 中定义这样一个函数 使其可以与实现适当方法的任何类型一起使用 对于上下
  • 编写代码以:启动 R 会话、运行 R 脚本、终止会话、重复

    我正在寻找一种简单的 设置后就忘记它 的方式 无论是作为终端中的单个参数字符串还是简单的 Java 程序 来自动执行以下操作 1 启动R会话 2 告诉 R 源 R 文件包含冗长的并行模拟代码 3 完成后终止R会话 4 开始一个新的R会话 5
  • VB6 - Lua 集成

    我想知道是否有人有任何集成 Lua 和 VB6 的技巧 我正在运行一个小型在线角色扮演游戏 添加一些脚本会很棒 嗯 这是可行的 我曾经为 Lua 5 0 2 做过 但找不到文件 在您拥有的选项中 您可以 将 Lua 封装在公开 Lua AP
  • MySQL/Postgres查询5分钟间隔数据

    我需要查询方面的帮助 假设这是表中的数据 timestamp 2010 11 16 10 30 00 2010 11 16 10 37 00 2010 11 16 10 40 00 2010 11 16 10 45 00 2010 11 1
  • 在 WatchKit 和主机 App 中使用具有不同标志的同一文件

    我试图在我的 watchkit 扩展和主机应用程序中使用相同的代码 但在主机应用程序中使用一些附加代码 在 watchkit 扩展中使用一些附加代码 为此 我在各自的目标上添加了 WATCH 和 APP swift 标志 问题是 当我在选择
  • Socket.io 不断重复连接并忽略其他事件

    我正在尝试制作一个网络应用程序 用户可以在其中互相玩环形国际象棋 这是我的 app js 在服务器上 var express require express var app express var http require http Ser
  • 仅使用特定提交消息触发 travis CI 构建

    我希望 travis 仅在我有特定的提交消息时才启动 我怎样才能做到这一点 我的 travis yml 文件是here https github com mosaadm mooltipass blob master travis yml 我
  • 如果表单脏则阻止路由 [ Angular 2 ]

    我被这个挡住了在 Angular 2 中 我需要阻止任何用户单击事件 甚至浏览器刷新 如果页面中的表单为dirty 你能帮我出出主意吗 看来您正在寻找可以停用 https angular io docs ts latest guide ro
  • 当我将 HTML 标签设置为 100% 高度时,我的内容消失了

    我有一个垂直布局 我想保持页面居中 一列保持固定在页面上 而另一列应根据内容滚动 并且有一些绝对的装饰性浮动 div 我希望滚动列垂直显示 100 即使内容不需要高度 但我似乎无法让它工作 我已将 html 标签和 body 标签以及所有必
  • 列表框显示类名称而不是值

    我正在开发一个项目 其中用户应该向动物输入值 名称 年龄 性别等 并且用户输入的值应该显示在列表框中 这些类相互继承 以下是继承的工作原理 Animalclass 是所有类的父类 Mammal类继承自Animal class Dog类继承自
  • 从循环中删除重复项

    我有以下代码 for i in 0 sold length 1 duplicate sold i print duplicate check duplicates print print sold i lotnumber t print s
  • iframe可以弹出Lightbox风格的盒子吗?

    这个问题不是关于在 Lightbox 中弹出 iframe 的问题 而是关于在 Lightbox 中弹出 iframe 的问题 相反 它是关于页面上的 iframe 它可以在页面中启动自己的 Lightbox 样式框contains那个 i
  • Microsoft 开源 .NET 后 CoreCLR 与 Mono 项目的关系

    有人可以向我解释一下 Mono 和 Microsoft 最近提供的开源 Linux 可移植 NET 堆栈 CoreCLR CoreFX Roslyn ASP NET 之间当前的关系吗 很明显这些项目是重叠的 所以我很好奇它们两个的路线图是什
  • 尝试在iPhone上生成随机数,得到相同的数字[重复]

    这个问题在这里已经有答案了 我正在尝试制作一款纸牌游戏 我正在使用以下代码来绘制随机卡 iCard 随机 55 但 icard 总是以 28 开头 似乎它以相同的顺序返回数字 有没有办法在每次第一次调用该函数时获得不同的随机数 random
  • 在mysql查询中对多个日期范围求和

    我有一个 MySql 表 产品 包含三列 Date Product Qty 我的目标是每周对每种产品的数量进行求和 获取两个给定日期之间的 SUM 很容易 SELECT SUM qty FROM products WHERE date gt