आप गलत aggregate
का इस्तेमाल कर रहे हैं . count(expression)
उन पंक्तियों की संख्या गिनता है जिनके लिए अभिव्यक्ति निरर्थक नहीं है। यदि आप एक राशि चाहते हैं, तो sum(expression)
. का उपयोग करें :
db.session.query(func.sum(Item.data['cost'].astext.cast(Numeric))).\
filter(Item.data['surcharge'].astext.cast(Numeric) > 1).\
scalar()
ध्यान दें कि मौद्रिक मूल्य और बाइनरी फ्लोटिंग पॉइंट गणित के कारण खराब मिश्रण है। बाइनरी फ़्लोट्स सभी दशमलव मानों का प्रतिनिधित्व करने में सक्षम नहीं हैं
. इसके बजाय एक उचित मौद्रिक प्रकार
का उपयोग करें , या Numeric
जिस स्थिति में SQLAlchemy Decimal
का उपयोग करता है
पायथन में परिणामों का प्रतिनिधित्व करने के लिए।