如何根据元组中传递的日期使用sql查询为用户获取最后7天的数据?

kdfy810k  于 2021-06-24  发布在  Hive
关注(0)|答案(0)|浏览(180)

我在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中这样做?主要问题是元组中每个名称传递的日期每次都不同。因此,对于每个名称,根据元组传递的日期,从db查询的最后7天是不同的。
元组数据来自csv(间接来自另一个db)。
如果我的元组数据是这样的:

20200111 Mike
20200120 Julia
20200211 Bob
20200219 Mike
20200301 Bob
20200411 Mike

因此,根据mike每个日期的日期,查询应该从db中获取过去7天中“20200111”、“20200219”和“20200411”每个日期的某个\u值。
我试过用

DATE_ADD(dt, -7)

在查询的where子句中。但这并不能很好地获得所需的数据。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题