Estoy usando SQLAlchemy en Python, y quiero saber cómo obtener el número total de filas en una columna. Tengo variables definidas:Obtenga el número de filas en la tabla usando 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__)
quiero para determinar el número total de filas de la tabla sin tener que esperar un montón de tiempo de consulta de la base de datos. Actualmente, tengo un poco de código:
rows = session.query(Congress).all()
Entonces puede acceder a ellos de la lista, pero esto me obliga a cargar todo en memoria a la vez.
Cuando escribo que en, la salida que se ve es 'SELECT count (shape_congress_districts_2012. id) como count_1 FROM shape_congress_districts_2012' ¿Eso significa que he enredado? en otro lugar dentro de mi código al construir la interfaz a la mesa? – dbmikus
Lo siento, inténtelo ahora con mi respuesta actualizada;) –
@dbmikus: La consulta puede parecer desagradable, pero está perfectamente bien. Es una práctica común usar 'COUNT (primary_key_column)' en lugar de solo 'COUNT (*)' ya que en una base de datos que no es lo suficientemente inteligente como para usar el índice de esa tecla automáticamente, la consulta puede ser más rápida de esa manera. – ThiefMaster