Guide for Cavallers i Dracs 4: Funcions d'agregació
Com abordar aquest problema
Es tracta de resumir una taula sencera amb les funcions d'agregat (COUNT, SUM, AVG, MIN, MAX). El resultat serà sempre una sola fila, amb tantes columnes com funcions posis. 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 FUNCIO1(columna), FUNCIO2(columna)
FROM taula
WHERE condició; -- opcional
COUNT(*)compta files;COUNT(columna)compta els valors no NULL.SUM(columna)iAVG(columna): suma i mitjana d'una columna numèrica.MIN(columna)iMAX(columna): el valor més petit i el més gran. Amb dates en formatAAAA-MM-DD,MINés la més antiga iMAXla més recent.
Pregunta per pregunta
Pregunta 1. Comptar quantes files té una taula concreta, sense filtre.
Pregunta 2. Dues funcions sobre la mateixa columna numèrica (la de víctimes conegudes, mira-la a l'esquema), en l'ordre que diu l'enunciat: primer la suma i després la mitjana.
Pregunta 3. Dues funcions sobre dues columnes diferents de la taula de cavallers. Fixa't bé quina funció va amb quina columna i en quin ordre: la primera columna del resultat és sobre el naixement i la segona sobre la defunció.
Un exemple semblant
El màxim i el mínim de víctimes dels dracs vermells:
SELECT MAX(KnownVictims), MIN(KnownVictims)
FROM Dragons
WHERE Color = 'Red';
La data de defunció més antiga dels dracs i quants dracs tenen color informat:
SELECT MIN(DeathDate), COUNT(Color)
FROM Dragons;
Paranys habituals:
- Quan una pregunta diu "en aquest ordre", és l'ordre de les columnes del
SELECT: el jutge el comprova. COUNT(*)iCOUNT(columna)poden donar resultats diferents si hi haNULL.- No afegeixis
WHEREsi la pregunta parla de "tots": canviaria el resultat. AVGpot tenir decimals: no cal arrodonir, el jutge té tolerància.