71

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):
    __tablename__ = '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()

次に、リストからそれらにアクセスできますが、これには、すべてを一度にメモリにロードする必要があります。

4

1 に答える 1

145

これはうまくいくはずです

rows = session.query(Congress).count()

編集:私の最初の試みに関連する別の方法

from sqlalchemy import func
rows = session.query(func.count(Congress.id)).scalar()
于 2012-05-30T19:20:16.927 に答える