¿Cómo usar avg y sum en SQLAlchemy Query?

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:

  1. 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.
  2. Luego creamos el motor que servirá como conexión a la base de datos para realizar todas las operaciones de la base de datos.
  3. Cree el objeto de metadatos. El objeto de metadatos `metadata` contiene toda la información sobre nuestra base de datos.
  4. Utilice la información de los metadatos para obtener la tabla de estudiantes de la base de datos.
  5. 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.
  6. 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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *