En este artículo, vamos a ver cómo usar avg y sum en consultas SQLAlchemy usando Python.
Instalando SQLAlchemy
SQLAlchemy está disponible a través del paquete de instalación pip.
pip install sqlalchemy
Sin embargo, si está utilizando un matraz, puede utilizar su propia implementación de SQLAlchemy. Se puede instalar usando –
pip install flask-sqlalchemy
Ejemplo
Antes de seguir adelante, necesitamos tener una base de datos y una tabla con la que trabajar. Para este ejemplo, estamos usando la base de datos MySQL y hemos creado una tabla de estudiantes . La tabla tiene 3 columnas y 6 registros como se muestra a continuación.
En la tabla, tenemos una columna flotante `porcentaje` en la que realizaremos nuestras operaciones de promedio y suma utilizando SQLAlchemy.
Acercarse:
- Primero, importamos la biblioteca sqlalchemy como db para simplificar. Todos los objetos, métodos, etc. de sqlalchemy se importarán utilizando el prefijo db para una mayor claridad.
- Luego creamos el motor que servirá como conexión a la base de datos para realizar todas las operaciones de la base de datos.
- Cree el objeto de metadatos. El objeto de metadatos `metadata` contiene toda la información sobre nuestra base de datos.
- Utilice la información de los metadatos para obtener la tabla de estudiantes de la base de datos.
- Ahora podemos escribir una consulta SQLAlchemy para obtener los registros requeridos. Primero extraemos el valor promedio de la columna de porcentaje usando la función `func.avg()` de SQLalchemy . Luego usamos la función `func.sum()` para obtener la suma de los valores en la columna de porcentaje . Tenga en cuenta que en ambos casos hemos utilizado el método `func.round(val, 2)` para redondear los valores a 2 decimales.
- Imprima la salida. En la salida podemos ver que tenemos tanto la suma como los valores promedio para el campo de porcentaje .
A continuación se muestra la implementación:
Python
import sqlalchemy as db # Define the Engine (Connection Object) engine = db.create_engine( "mysql+pymysql://root:password@localhost/Geeks4Geeks") # Create the Metadata Object meta_data = db.MetaData(bind=engine) db.MetaData.reflect(meta_data) # Get the `students` table from the Metadata object STUDENTS = meta_data.tables['students'] # SQLAlchemy Query to get AVG query = db.select([db.func.round(db.func.avg(STUDENTS.c.percentage), 2)]) # Fetch the records avg_result = engine.execute(query).fetchall() # SQLAlchemy Query to get SUM query = db.select([db.func.round(db.func.sum(STUDENTS.c.percentage), 2)]) # Fetch the records sum_result = engine.execute(query).fetchall() # View the records print("\nAverage: ", avg_result[0]) print("\nSum: ", sum_result[0])
Producción:
Publicación traducida automáticamente
Artículo escrito por apathak092 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA