PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Zapytanie o konkretną kolumnę JSON (postgres) za pomocą sqlalchemy

Używasz niewłaściwego agregatu . count(expression) zlicza liczbę wierszy, dla których wyrażenie nie jest pusta. Jeśli chcesz sumę, użyj sum(expression) :

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

Pamiętaj, że wartości pieniężne i binarna matematyka zmiennoprzecinkowa to zła mieszanka z powodu zmiennoprzecinkowe binarne nie mogą reprezentować wszystkich wartości dziesiętnych . Zamiast tego użyj właściwego typu pieniężnego lub Numeric w takim przypadku SQLAlchemy używa Decimal do reprezentowania wyników w Pythonie.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kaskada utrwalania tworzy zduplikowane wiersze?

  2. Wyczerpano dozwolony rozmiar pamięci 8589934592 bajtów

  3. PostGIS:Zapytanie o wymiary z i m (linestringzm)

  4. Połącz aplikację na iPhone'a z PostgreSQL za pomocą Libpq

  5. Postgres:przyznanie dostępu do roli/użytkownika dla przyszłych tabel tworzonych przez inną rolę/użytkownika