Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在postgresql和Django中按周选择并计数_Python_Django_Postgresql_Date - Fatal编程技术网

Python 如何在postgresql和Django中按周选择并计数

Python 如何在postgresql和Django中按周选择并计数,python,django,postgresql,date,Python,Django,Postgresql,Date,我正在试着按周选择,并计算那一周卖出了多少张票 我使用事件ID选择票 WHERE EVENT ID 148 SAMPLE DATA: TICKETS TABLE ------------------------------------------------- "General";0;"2016-09-02 17:50:45.644381+00" "General";0;"2016-09-03 21:05:54.830366+00" "General";0;"2016-

我正在试着按周选择,并计算那一周卖出了多少张票

我使用事件ID选择票

WHERE EVENT ID 148
SAMPLE DATA: TICKETS TABLE
-------------------------------------------------

    "General";0;"2016-09-02 17:50:45.644381+00"
    "General";0;"2016-09-03 21:05:54.830366+00"
    "General";0;"2016-09-02 18:21:33.976451+00"
    "Early Bird";500;"2016-09-09 19:15:33.721279+00"
    "Youth";0;"2016-09-06 14:46:53.903704+00"
    "Post Secondary Student";1000;"2016-09-06 14:46:53.90927+00"
    "Youth";0;"2016-09-06 14:46:53.903704+00"
    "Youth";0;"2016-09-06 14:46:53.903704+00"
    "General";0;"2016-09-01 23:50:05.034436+00"
    "Youth";0;"2016-09-06 14:46:53.903704+00"
    "Youth";0;"2016-09-06 14:46:53.903704+00"
    "Youth";0;"2016-09-06 14:46:53.903704+00"
    "Youth";0;"2016-09-06 14:46:53.903704+00"
    "Youth";0;"2016-09-06 14:46:53.903704+00"
    "Post Secondary Student";1000;"2016-09-06 14:46:53.90927+00"
    "Post Secondary Student";1000;"2016-09-06 14:46:53.90927+00"
    "General";0;"2016-09-03 18:39:15.571188+00"
    "General";0;"2016-09-07 20:14:35.959517+00"
    "General";0;"2016-09-03 21:33:04.349198+00"
    "General";0;"2016-09-07 18:21:22.220223+00"
    "General";0;"2016-09-01 23:34:55.773516+00"
    "General";0;"2016-09-01 23:42:15.498778+00"
    "Early Bird";500;"2016-09-09 19:15:33.721279+00"
    "Youth";0;"2016-09-06 14:46:53.903704+00"
    "RSVP";0;"2016-09-27 21:27:33.378934+00"
    "RSVP";0;"2016-09-14 22:23:04.922607+00"
    "RSVP";0;"2016-09-14 22:23:04.922607+00"
    "General Admission";0;"2016-09-23 15:35:54.972803+00"
    "General Admission";0;"2016-09-23 15:35:54.972803+00"
    "RSVP";0;"2016-09-14 22:23:04.922607+00"
    "RSVP";0;"2016-09-14 22:23:04.922607+00"
    "General";1000;"2016-09-09 19:15:33.72771+00"
    "General Admission";0;"2016-09-23 15:35:54.972803+00"
    "General Admission";0;"2016-09-23 15:35:54.972803+00"
    "Youth";0;"2016-09-06 14:46:53.903704+00"
    "Youth";0;"2016-09-06 14:46:53.903704+00"
    "RSVP";0;"2016-09-14 22:23:04.922607+00"
    "RSVP";0;"2016-09-14 22:23:04.922607+00"
    "General Admission";0;"2016-09-23 15:35:54.972803+00"
    "Youth";0;"2016-09-06 14:46:53.903704+00"
    "Youth";0;"2016-09-06 14:46:53.903704+00"
    "General Admission";0;"2016-09-23 15:35:54.972803+00"
    "General Admission";0;"2016-09-23 15:35:54.972803+00"
    "Free Admission";0;"2016-10-03 19:12:12.965369+00"
    "Free Admission";0;"2016-10-06 19:00:25.926406+00"
    "Free Admission";0;"2016-10-06 19:00:25.926406+00"
有什么建议我如何做到这一点吗

我这样做是为了在白天找到并计算:

Ticket.objects.filter(event_id=event_id, event_ticket_id=ticket_type.id, refunded=False).extra(where=('created',),
                            select={'date_sold':'date(created)'}).values('date_sold').annotate(sold_count=Count('id'))
但在一周内做不到


谢谢

这是我在类似情况下使用的解决方案。 但是,我使用了原始SQL查询

Ticket.objects.raw('''SELECT COUNT(app_ticket.id) as id, app_ticket.name, EXTRACT(WEEK FROM app_ticket.created) as week, EXTRACT(YEAR FROM app_ticket.created) as YEAR
      FROM app_ticket
      WHERE app_ticket.event_id = %s
      GROUP BY app_ticket.name, EXTRACT(WEEK FROM app_ticket.created), EXTRACT(YEAR FROM app_ticket.created), app_ticket.id
      ORDER BY EXTRACT(WEEK FROM app_ticket.created), EXTRACT(YEAR FROM app_ticket.created)''', [1])

希望能有帮助。

我补充了我今天所做的