Python MySQL – Cláusula GROUP BY y HAVING

En este artículo, veremos cómo realizar operaciones groupby() y HAVING() en SQL usando Python. Aquí consideraremos una base de datos de la universidad para realizar operaciones de grupo por departamento con respecto a la fortaleza de los estudiantes.

AGRUPAR POR

La declaración GROUP BY agrupa filas que tienen los mismos valores en una sola según la función de agregado utilizada. Las funciones agregadas son (COUNT(), MAX(), MIN(), SUM(), AVG()).

Sintaxis: SELECT función_agregación(columna1),columna2,…,columna

DESDE table_name

AGRUPAR POR column_name;

Base de datos en uso:

Ejemplo:

Python3

# Establish connection to MySQL database
import mysql.connector 
  
database = mysql.connector.connect( 
    host="localhost", 
    user="root", 
    password="", 
    database="sravan"
) 
  
# Creating cursor object
cur_object = database.cursor() 
  
# Execute the query 
find = "SELECT  department,sum(strength) from \
college_data GROUP BY(department)";
cur_object.execute(find) 
  
# fetching all results
data = cur_object.fetchall() 
print("Total departments with count : ")
print(" ")
for res in data: 
    print(res[0],res[1],sep="--") 
  
# Close database connection 
database.close() 

Producción:

AGRUPAR POR Tener

Tener cláusula es básicamente como la función agregada con la cláusula GROUP BY. La cláusula HAVING se usa en lugar de WHERE con funciones agregadas. Mientras que la cláusula GROUP BY agrupa filas que tienen los mismos valores en filas de resumen. La cláusula «have» se usa con la cláusula «where» para encontrar filas con ciertas condiciones. La cláusula have siempre se usa después de la cláusula Group By.

Sintaxis: SELECT función_agregada (nombres_columnas),columna1,columna2,…,columna FROM nombre_tabla

AGRUPAR POR nombre_columna

TIENE la condición de la función agregada (nombre de la columna);

Base de datos en uso:

Ejemplo:

Python3

# Establish connection to MySQL database
import mysql.connector 
  
# give connection with xampp
database = mysql.connector.connect( 
    host="localhost", 
    user="root", 
    password="", 
    database="sravan"
) 
  
# Creating cursor object
cur_object = database.cursor() 
  
find = "SELECT  department,sum(strength) from college_data\
GROUP BY(department) HAVING sum(strength)<=400 ";
  
# Execute the query 
cur_object.execute(find) 
  
# fetching all results
data = cur_object.fetchall() 
print("Total departments with count less than 400 : ")
print(" ")
for res in data: 
    print(res[0],res[1],sep="--") 
  
# Close database connection 
database.close() 

Producción:

Publicación traducida automáticamente

Artículo escrito por sravankumar8128 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 *