Я пытаюсь нарисовать график дневных рядов, в котором будет показано количество сотрудников подразделений в дневном ряду. Проблема здесь в том, что я хочу найти способ ограничиться разделением с большинством сотрудников, поэтому мне не нужно рисовать слишком много линий и подчеркивать базу данных. (например, ограничьте его 3 верхними подразделениями с наибольшей посещаемостью сотрудников)
Я использую: Django 1.11.x Postgres 9.4
Цель состоит в том, чтобы создать графики дневных рядов такого рода. имеет группировку деления и численность работников.
![graphing](https://i.imgur.com/P5ANWj0.jpg)
Мне удалось добиться этого с помощью следующего кода:
from datetime import date, datetime
from django.db.models import Count
from django.db.models.functions import (
TruncDate, TruncDay, TruncHour, TruncMinute, TruncSecond,
)
emp_by_day = Attendance.objects.annotate(day=TruncDay('created_at')).values('day', 'division_id').annotate(cnt=Count('employee_id', distinct = True)).order_by('day')
for exp in emp_by_day:
print(exp['day'], exp['division_id'], exp['cnt'])
, однако, в настоящее время он выводит на экран, как это (я в целом счастлив, но хочу ограничить это):
employee count<->
division_id<->
<---day----------------->
2019-10-22 00:00:00+00:00 15 6
2019-10-22 00:00:00+00:00 16 6
2019-10-22 00:00:00+00:00 18 5
2019-10-22 00:00:00+00:00 20 4
2019-10-22 00:00:00+00:00 21 12 <-- largest 3
2019-10-22 00:00:00+00:00 25 14 <-- largest 3
2019-10-22 00:00:00+00:00 28 12 <-- largest 3
2019-10-23 00:00:00+00:00 15 6
2019-10-23 00:00:00+00:00 16 5
2019-10-23 00:00:00+00:00 18 2
2019-10-23 00:00:00+00:00 20 3
2019-10-23 00:00:00+00:00 21 14 <-- largest 3
2019-10-23 00:00:00+00:00 25 17 <-- largest 3
2019-10-23 00:00:00+00:00 28 13 <-- largest 3
2019-10-24 00:00:00+00:00 15 2
2019-10-24 00:00:00+00:00 16 6
2019-10-24 00:00:00+00:00 18 5
2019-10-24 00:00:00+00:00 20 4
2019-10-24 00:00:00+00:00 21 13 <-- largest 3
2019-10-24 00:00:00+00:00 25 12 <-- largest 3
2019-10-24 00:00:00+00:00 28 10 <-- largest 3
моя цель состоит в том, чтобы произвести это (ограничить это самым большим 3 делением):
2019-10-22 00:00:00+00:00 21 12 <-- largest 3
2019-10-22 00:00:00+00:00 25 14 <-- largest 3
2019-10-22 00:00:00+00:00 28 12 <-- largest 3
2019-10-23 00:00:00+00:00 21 14 <-- largest 3
2019-10-23 00:00:00+00:00 25 17 <-- largest 3
2019-10-23 00:00:00+00:00 28 13 <-- largest 3
2019-10-24 00:00:00+00:00 21 13 <-- largest 3
2019-10-24 00:00:00+00:00 25 12 <-- largest 3
2019-10-24 00:00:00+00:00 28 10 <-- largest 3
Дайте мне знать, какмогу ли я произвести такой намеченный вывод (ограничить его до наибольшего 3 деления)