Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Django
  • » Сумма произведений двух столбцов таблицы [RSS Feed]

#1 Дек. 3, 2014 15:11:32

hound
Зарегистрирован: 2014-10-27
Сообщения: 41
Репутация: +  0  -
Профиль   Отправить e-mail  

Сумма произведений двух столбцов таблицы

Добрый день, есть модель:
class Sales(models.Model):
count = models.IntegerField()
price = models.IntegerField()

count - кол-во товара
price - цена одной единицы товара.


как можно вычислить итоговую сумму по элементам таблицы?

Офлайн

#2 Дек. 3, 2014 15:56:16

alchemist
Зарегистрирован: 2014-11-12
Сообщения: 43
Репутация: +  0  -
Профиль   Отправить e-mail  

Сумма произведений двух столбцов таблицы

from django.db.models import Sum , F
print(Sales.objects.aggregate(s=Sum(F('price')*F('count') ) )['s'])
https://docs.djangoproject.com/en/dev/topics/db/aggregation/

Плюсик в карму?

Отредактировано alchemist (Дек. 3, 2014 15:57:22)

Офлайн

#3 Дек. 3, 2014 15:58:08

hound
Зарегистрирован: 2014-10-27
Сообщения: 41
Репутация: +  0  -
Профиль   Отправить e-mail  

Сумма произведений двух столбцов таблицы

alchemist
Плюсов не жалко) но только есть ли пример какой-то? Потому что по агрегации читал, но там по всей выборке и по одному полю модели…а тут сначала нужно вычислить произведение двух полей одного эксземпляра формы (строки в таблице) и потом уже общую сумму этого произведения…

Офлайн

#4 Дек. 3, 2014 16:02:18

alchemist
Зарегистрирован: 2014-11-12
Сообщения: 43
Репутация: +  0  -
Профиль   Отправить e-mail  

Офлайн

#5 Дек. 3, 2014 16:08:48

hound
Зарегистрирован: 2014-10-27
Сообщения: 41
Репутация: +  0  -
Профиль   Отправить e-mail  

Сумма произведений двух столбцов таблицы

alchemist
https://www.google.com.ua/search?q=django+aggregate+tutorial http://stackoverflow.com/questions/tagged/aggregate+djangohttps://github.com/search?utf8=%E2%9C%93&q=aggregate+django+objects&type=Code&ref=searchresultsНовичек шоле?
ну да, новичок…

вот хоть убей не могу понять как произведение то двух элементов сделать в запросе…
Sales.objects.annotate('price' * ‘count’).aggregate(Sum())

Вроде что-то подобное должно быть, но как джанге сказать, чтобы сначала анотацию сделал по произвдению двух полей, а потмо уже их просумировал

Офлайн

  • Начало
  • » Django
  • » Сумма произведений двух столбцов таблицы[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version