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