Guide for Miniwind 4: Funcions d'agregació


Això és una guia per ajudar-te a començar amb aquest problema — no és la solució.

Com abordar aquest problema

Practiques les funcions d'agregat (COUNT, SUM, AVG, MIN, MAX) per obtenir un resum de tota una taula en una sola fila. La BD Miniwind té moltes taules: mira a l'esquema on és cada columna abans d'escriure res. Cada pregunta té el seu propi quadre de text: escriu-hi una sola consulta SELECT (sense res més) per a cada pregunta.

La sintaxi que necessites

SELECT FUNCIO(columna) [, FUNCIO(columna) ...]
FROM taula
WHERE condició;   -- opcional: només resumeix les files que la compleixen
  • COUNT(*): nombre de files. COUNT(columna): nombre de valors no NULL.
  • SUM(columna): suma; AVG(columna): mitjana.
  • MIN(columna) / MAX(columna): el valor més petit / més gran.

Cada funció que escrius és una columna del resultat, en el mateix ordre.

Pregunta per pregunta

Pregunta 1. Comptar les files d'una taula. Assegura't que tries la taula que diu l'enunciat.

Pregunta 2. Dues funcions sobre la mateixa columna de preu, en l'ordre de l'enunciat: primer el valor més alt i després el més baix (compte, és l'invers de l'ordre "natural").

Pregunta 3. Una suma sobre una columna de la taula de detalls de comanda (no de la taula de comandes!). Sense filtre.

Un exemple semblant

El cost mitjà (standard_cost) dels productes de la categoria 'Beverages':

SELECT AVG(standard_cost)
FROM products
WHERE category = 'Beverages';

Quantes comandes hi ha i quant sumen les seves despeses d'enviament:

SELECT COUNT(*), SUM(shipping_fee)
FROM orders;

Paranys habituals:

  • Hi ha columnes de preu a diverses taules (products, order_details...): llegeix bé de quina taula et parlen.
  • L'ordre de les columnes compta: MAX, MIN no és el mateix que MIN, MAX.
  • COUNT(*) compta files; COUNT(columna) ignora els NULL.
  • Els resultats amb decimals es comparen amb tolerància de 0.001: no cal ROUND.

Tornar al problema