python - 如何根据元组中传递的日期使用 SQL 查询获取用户最近 7 天的数据?
问题描述
我在我的 python 脚本中运行一个 sql 查询来获取一些数据。这是我的 sql 查询:
sql_query=(""" SELECT date,
name,
sum(some_value) as Total_Value
FROM table_name
WHERE (SUBSTRING(date,1,8), name) IN {}
GROUP BY date,name
""").format(tuple_passed)
传递的元组是这种形式
(('20191001', 'mike'),('20191001', 'julia'),......)
表中的日期采用以下形式(它在该数据库中存储为字符串而不是日期时间格式):
202002051600
而元组日期是这样的:
20200205
这就是我使用SUBSTRING函数的原因。
问题是,对于取决于特定名称的元组中日期的 sql 查询,我想从表中查询该特定名称的最后 7 天数据(从元组中提到的日期开始)。我不知道如何在 sql 中做到这一点?主要问题是元组中每个名称的传递日期每次都不同。因此,对于每个名称,从数据库查询的最后 7 天将根据从元组传递的日期而有所不同。
元组数据来自 csv(间接来自另一个数据库)。
所以如果我的元组数据是这样的:
20200111 Mike
20200120 Julia
20200211 Bob
20200219 Mike
20200301 Bob
20200411 Mike
因此,根据 Mike 的每个日期的日期,查询应该从数据库中获取过去 7 天中每个日期"20200111" 、 " 20200219"和"20200411"的 some_value 。
我尝试使用
DATE_ADD(dt, -7)
在查询的WHERE 子句中。但这无法正常工作以获取所需的数据。
解决方案
推荐阅读
- file-upload - Yii2 文件验证 .tar.xz
- django-views - 我无法指定用户访问我在 django 中的帖子
- elasticsearch - 弹性搜索 Azure 插件问题
- rust - 如何在不克隆的情况下使用 Itertools::group_by 或错误“无法移出共享引用后面的值”?
- python - 如何打印真阳性、假阳性等的结果
- python - 如何从类中的 __repr__ 返回列表?
- java - 使用 ByteBuddy 的条件方法委托
- python-3.x - Azure TimerTrigger 具有不同配置的多个实例
- javascript - 如何使用 React 应用程序删除 firebase 中的文档
- facebook - 权限未显示在 Facebook 登录屏幕上