В настоящее время я занимаюсь разработкой приложения django, целью которого является решение проблемы такого рода:
https://code.google.com/p/django-cube/
Документация устарела, так как я постоянно изменяюкод (пока ... это только начало проекта).Вот код, который вы бы использовали:
cube = Cube(['common_vehicle'], Vehicle.objects.all(), len)
Вы можете выполнить итерации по кубу для получения всех подсчетов для всех возможных CommonVehicle
s:
for coords, value in cube.iteritems():
#will print <CommonVehicule unicode representation> <count for this common vehicule>
print coords.common_vehicule, measure
Или напрямуюколичество для CommonVehicule
:
cube[Coords(common_vehicle=a_common_veh)]
Множество других интересных функций доступно (будет) ...
PS : приложение позволяетсоздавать многомерные агрегаты через набор запросов django, стиль OLAP ... Cube(['common_vehicle'], Vehicle.objects.all(), len)
фактически представляет куб, размеры которого ['common_vehicle']
, базовый набор запросов Vehicle.objects.all()
и функция агрегирования len
.