In [33]:
from django.db.models import Q, Count, Sum
from django.db import connections
from nc.models import Agency, Stop, Search
In [2]:
Agency.objects.count()
Out[2]:
In [3]:
sheriff = Agency.objects.filter(name__icontains='Sheriff')
sheriff.count()
Out[3]:
In [4]:
police = Agency.objects.filter(name__icontains='Police')
police.count()
Out[4]:
In [5]:
list(Agency.objects.exclude(id__in=police).exclude(id__in=sheriff))
Out[5]:
In [15]:
list(Agency.objects.filter(Q(name__icontains='College') | Q(name__icontains='University')))
Out[15]:
In [10]:
Stop.objects.count()
Out[10]:
In [22]:
top_ten_agencies = Agency.objects.annotate(total_stops=Count('stops')).values_list('name', 'total_stops').order_by('-total_stops')[:10]
list(top_ten_agencies)
Out[22]:
In [23]:
top_ten_agencies.aggregate(Sum('total_stops'))
Out[23]:
In [1]:
top_ten_percent = 13338363/18819973
"{0:.4f}%".format(top_ten_percent*100)
Out[1]:
In [2]:
state_highway_patrol = Agency.objects.get(name='NC State Highway Patrol')
state_highway_patrol.stops.count()
Out[2]:
In [2]:
"{0:.4f}%".format(8827911/18819973*100)
Out[2]:
In [32]:
year = connections[Stop.objects.db].ops.date_trunc_sql('year', 'date')
qs = Stop.objects.extra(select={'year': year})
qs = qs.values('year').annotate(total_stops=Count('date')).order_by('-year')
summary = [(row['year'].year, row['total_stops']) for row in list(qs)]
summary
Out[32]:
In [34]:
Search.objects.count()
Out[34]:
In [42]:
state_search_rate = Search.objects.count()/Stop.objects.count()
"{0:.4f}%".format(state_search_rate*100)
Out[42]:
In [ ]: