sql >> Databasteknik >  >> RDS >> PostgreSQL

Fråga en specifik JSON-kolumn (postgres) med sqlalchemy

Du använder fel aggregat . count(expression) räknar antalet rader för vilka uttrycket är inte null. Om du vill ha en summa, använd sum(expression) :

db.session.query(func.sum(Item.data['cost'].astext.cast(Numeric))).\
    filter(Item.data['surcharge'].astext.cast(Numeric) > 1).\
    scalar()

Observera att monetära värden och binär flyttal-matematik är en dålig blandning på grund av binära flyter som inte kan representera alla decimalvärden . Använd istället en korrekt penningtyp , eller Numeric i så fall använder SQLAlchemy Decimal för att representera resultaten i Python.



  1. LPAD() Funktion i PostgreSQL

  2. Unicode (grekiska) tecken lagras i databasen som ??????

  3. Körs Parallel Hint inom Dynamic SQL i Oracle parallellt?

  4. php-session vs mysql-hastighet