PythonでSQLAlchemyを使用していますが、列の行の総数を取得する方法を知りたいです。変数が定義されています:
engine = sqlalchemy.create_engine(url, ehco=False)
Session = sqlalchemy.orm.sessionmaker(bind=engine)
Session = session()
metadata = sqlalchemy.MetaData(engine)
Base = declarative_base(metadata=metadata)
# A class representing the shape_congress_districts_2012 table
class Congress(Base):
__table= 'shape_congress_districts_2012'
id = geoalchemy.Column(sqlalchemy.Integer, primary_key=True)
name = geoalchemy.Column(sqlalchemy.Unicode)
geom = geoalchemy.GeometryColumn(geoalchemy.Polygon(2))
geom_simple = geoalchemy.GeometryColumn(geoalchemy.Polygon(2))
area = geoalchemy.Column(sqlalchemy.Float)
state_id = geoalchemy.Column(sqlalchemy.Integer)
census_year = geoalchemy.Column(sqlalchemy.Date)
geoalchemy.GeometryDDL(Congress.__table__)
データベースを照会するのに多くの時間を待たずに、テーブル内の行の総数を判別したいと思います。現在、私は少しのコードを持っています:
rows = session.query(Congress).all()
その後、リストからそれらにアクセスできますが、これにはすべてを一度にメモリにロードする必要があります。
これは動作するはずです
rows = session.query(Congress).count()
編集:最初の試行に関連する別の方法
from sqlalchemy import func
rows = session.query(func.count(Congress.id)).scalar()