En aquest tema, aprendrem com utilitzar les funcions d'agregació a SQL per resumir i analitzar dades a BigQuery. Les funcions d'agregació són essencials per obtenir informació significativa de grans conjunts de dades.
Conceptes Clau
- Funcions d'agregació: Són funcions que realitzen càlculs sobre un conjunt de valors i retornen un únic valor.
- GROUP BY: Una clàusula que s'utilitza per agrupar files que tenen els mateixos valors en columnes especificades en grups.
- HAVING: Una clàusula que s'utilitza per filtrar grups de files després d'aplicar la clàusula GROUP BY.
Funcions d'Agregació
Les funcions d'agregació més comunes són:
COUNT()
: Retorna el nombre de files.SUM()
: Retorna la suma dels valors.AVG()
: Retorna la mitjana dels valors.MIN()
: Retorna el valor mínim.MAX()
: Retorna el valor màxim.
Exemple Pràctic
Suposem que tenim una taula sales
amb les següents columnes: product_id
, quantity
, i price
.
SELECT COUNT(*) AS total_sales, SUM(quantity) AS total_quantity, AVG(price) AS average_price, MIN(price) AS min_price, MAX(price) AS max_price FROM sales;
Explicació del codi:
COUNT(*)
: Comptem el nombre total de vendes.SUM(quantity)
: Sumem la quantitat total de productes venuts.AVG(price)
: Calculem la mitjana dels preus dels productes.MIN(price)
: Trobarem el preu mínim dels productes.MAX(price)
: Trobarem el preu màxim dels productes.
Utilització de GROUP BY
La clàusula GROUP BY
s'utilitza per agrupar files que tenen els mateixos valors en columnes especificades en grups.
Exemple Pràctic
Suposem que volem saber la quantitat total venuda per cada producte.
Explicació del codi:
product_id
: Agrupem les files perproduct_id
.SUM(quantity)
: Sumem la quantitat total de productes venuts per cadaproduct_id
.
Utilització de HAVING
La clàusula HAVING
s'utilitza per filtrar grups de files després d'aplicar la clàusula GROUP BY
.
Exemple Pràctic
Suposem que volem saber quins productes han venut més de 100 unitats.
SELECT product_id, SUM(quantity) AS total_quantity FROM sales GROUP BY product_id HAVING total_quantity > 100;
Explicació del codi:
GROUP BY product_id
: Agrupem les files perproduct_id
.SUM(quantity)
: Sumem la quantitat total de productes venuts per cadaproduct_id
.HAVING total_quantity > 100
: Filtre per mostrar només els productes que han venut més de 100 unitats.
Exercicis Pràctics
Exercici 1
Troba el nombre total de vendes, la quantitat total venuda i el preu mitjà per cada producte.
SELECT product_id, COUNT(*) AS total_sales, SUM(quantity) AS total_quantity, AVG(price) AS average_price FROM sales GROUP BY product_id;
Exercici 2
Troba els productes que han venut més de 50 unitats i mostra el nombre total de vendes i la quantitat total venuda per aquests productes.
SELECT product_id, COUNT(*) AS total_sales, SUM(quantity) AS total_quantity FROM sales GROUP BY product_id HAVING total_quantity > 50;
Errors Comuns i Consells
- Oblidar la clàusula GROUP BY: Quan utilitzes funcions d'agregació amb columnes no agregades, assegura't d'incloure la clàusula
GROUP BY
. - Utilitzar HAVING en lloc de WHERE: Utilitza
WHERE
per filtrar files abans de l'agregació iHAVING
per filtrar grups després de l'agregació.
Resum
En aquest tema, hem après a utilitzar funcions d'agregació per resumir dades, la clàusula GROUP BY
per agrupar dades i la clàusula HAVING
per filtrar grups. Aquestes eines són fonamentals per analitzar i obtenir informació significativa de grans conjunts de dades a BigQuery.
Curs de BigQuery
Mòdul 1: Introducció a BigQuery
- Què és BigQuery?
- Configurar el teu entorn de BigQuery
- Comprendre l'arquitectura de BigQuery
- Visió general de la consola de BigQuery
Mòdul 2: SQL bàsic a BigQuery
Mòdul 3: SQL intermedi a BigQuery
Mòdul 4: SQL avançat a BigQuery
- Unions avançades
- Camps niats i repetits
- Funcions definides per l'usuari (UDFs)
- Particionament i agrupament
Mòdul 5: Gestió de dades a BigQuery
- Carregar dades a BigQuery
- Exportar dades de BigQuery
- Transformació i neteja de dades
- Gestió de conjunts de dades i taules
Mòdul 6: Optimització del rendiment de BigQuery
- Tècniques d'optimització de consultes
- Comprendre els plans d'execució de consultes
- Ús de vistes materialitzades
- Optimització de l'emmagatzematge
Mòdul 7: Seguretat i compliment de BigQuery
Mòdul 8: Integració i automatització de BigQuery
- Integració amb serveis de Google Cloud
- Ús de BigQuery amb Dataflow
- Automatització de fluxos de treball amb Cloud Functions
- Programació de consultes amb Cloud Scheduler
Mòdul 9: Aprenentatge automàtic a BigQuery (BQML)
- Introducció a BigQuery ML
- Creació i entrenament de models
- Avaluació i predicció amb models
- Funcions avançades de BQML