2011-06-26 11 views
41

मेरे पास निम्न के जैसा एक प्रश्न है:Django SUM क्वेरी?

SELECT SUM(ISNULL(table.name)) FROM table 

यह SUM Django में QuerySet में कैसे अनुवाद करता है? (यानी MyModel.objects.xyz() जैसे कुछ में xyz क्या ऑपरेशन करता है?)

+0

आप condit आवश्यकता हो सकती है अगर आप एक उन्नत USECASE है आयनियल अभिव्यक्ति https://docs.djangoproject.com/en/1.11/ref/models/conditional-expressions/#conditional-aggregation – Pykler

उत्तर

86

अद्यतन: निम्नलिखित मूल प्रश्न के IsNull पहलू को शामिल किया गया:

from django.db.models import Sum 

ModelName.objects.filter(field_name__isnull=True).aggregate(Sum('field_name')) 

आप योग एकत्रीकरण समारोह के लिए देख रहे हैं, जो इस प्रकार काम करता है:

ModelName.objects.aggregate(Sum('field_name')) 

देखें: https://docs.djangoproject.com/en/dev/ref/models/querysets/#sum

+0

आह धन्यवाद। लेकिन 'इस्नुल' के बारे में क्या? – Mehrdad

+0

मुझे लगता है कि आप अपनी क्वेरी में फ़िल्टर का उपयोग कर ऐसा कर सकते हैं। मैंने इसका परीक्षण नहीं किया है, लेकिन इस तरह कुछ काम करना चाहिए: 'ModelName.objects.filter (field_name__isnull = True)। कुल (Sum (' field_name ')) ' –

+1

निश्चित बात :) मैंने अपने उत्तर में अपडेट जोड़ा। –

संबंधित मुद्दे