Django过滤查询周日(星期五到星期四连续一个月)

时间:2016-09-27 13:31:13

标签: django filter

HI伙计我在模型中有这样的数据

Date        Day         Amount
------------------------------
01/09/2016  Thursday    2500
02/09/2016  Friday      300
03/09/2016  Saturday    600
04/09/2016  Sunday      7500
05/09/2016  Monday      9800
06/09/2016  Tuesday     2800
07/09/2016  Wednesday   3600
08/09/2016  Thursday    580
09/09/2016  Friday      352
10/09/2016  Saturday    950
11/09/2016  Sunday      780
12/09/2016  Monday      650
13/09/2016  Tuesday     440
14/09/2016  Wednesday   25
15/09/2016  Thursday    39
16/09/2016  Friday      500
17/09/2016  Saturday    51
18/09/2016  Sunday      65
19/09/2016  Monday      99
20/09/2016  Tuesday     350
21/09/2016  Wednesday   280
22/09/2016  Thursday    782
23/09/2016  Friday      98
24/09/2016  Saturday    785
25/09/2016  Sunday      965
26/09/2016  Monday      1500
27/09/2016  Tuesday     3650
28/09/2016  Wednesday   85
29/09/2016  Thursday    70
30/09/2016  Friday      980

我想在django中编写一个过滤器查询,它会在每个月的下一个月之后连续过滤星期五到星期四的数据。

即总和(2016年9月2日(星期五)至2016年9月8日(星期四)),总和(2016年9月9日(星期五)至2016年9月15日(星期四))等等。 ..

1 个答案:

答案 0 :(得分:0)

您可以使用django的原始查询方法触发查询以下提到的数据

 [Model_Name.objects.raw('query_below_mentioned')][1]

。我不知道您正在使用的数据库,但您可以使用下面提到的查询来获取数据。我试过它是sqlite,它工作正常,但这里唯一的问题是如果你的数据不断增加,那么你必须手动调整偏移量并修改查询。 :(,但如果紧急你可以使用它现在:

select * from (select sum(amount) as sum from (SELECT * FROM demo_table LIMIT 7 OFFSET 0)
                UNION
                select sum(amount) as sum from (SELECT * FROM demo_table LIMIT 7 OFFSET 7)
               UNION
               select sum(amount) as sum from (SELECT * FROM demo_table LIMIT 7 OFFSET 14)
               UNION
               select sum(amount) as sum from (SELECT * FROM demo_table LIMIT 7 OFFSET 21));