Query di riepilogo: funzioni di raggruppamento

Gli argomenti di questa pagina

  • Funzioni aggregative o di raggruppamento in MYSQL
  • Codice per eseguire le Query
  • Funzione MYSQL AVG()
  • Funzione MYSQL COUNT()
  • Funzione MYSQL MAX()
  • Funzione MYSQL MIN()
  • Funzione MYSQL SUM()
  • Abbinamento di più funzioni di aggregamento

Funzioni aggregative o di raggruppamento in MYSQL

Le funzioni aggregative in MYSQL ritornano un singolo valore calcolato dai valori in una colonna.
Questo è un elenco delle funzioni aggregative o di raggruppamento:

  • COUNT() - Restituisce il numero di righe di una tabella: se fra le parentesi vengono indicate una o più colonne vengono conteggiate le righe che non hanno valori nulli, se viene indicato il carattere * vengono conteggiate tutte le righe contenute in una tabella
  • MAX() - Restituisce il valore più grande della colonna indicata fra le parentesi tonde: si applica a qualsiasi tipo di campo
  • MIN() - Restituisce il valore più piccolo della colonna indicata fra le parentesi tonde: si applica a qualsiasi tipo di campo
  • AVG() - Restituisce il valore medio della colonna indicata fra le parentesi tonde: viene applicata a campi numerici
  • SUM() - Restituisce la somma della colonna indicata fra le parentesi tonde: viene applicata a campi numerici

In questa pagina vengono proposti gli esempi base alcuni esempi base per ognuna di queste funzioni.

Codice per eseguire le Query

Tutte le Query presentate come esempi sono eseguite da questo script.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
include ('res/db_login.php');
if (!
$link mysql_connect($Host$User$Password)) {
    echo 
mysql_error() . "<br />\n"
} else {
    if (!
mysql_select_db($DBName)) {
        echo 
mysql_error() . "<br />\n"
    } else {
        
mysql_set_charset("utf8");
        
$result mysql_query($Query);
        
$num_row mysql_num_rows($result);
        if (!
$result) {
            echo 
mysql_error() . "<br />\n";
        } else {
            
$field mysql_field_name($result0);
            
$row mysql_fetch_array($result);
            echo 
"Restituisce => ";
            echo 
$field ": " $row[$field] . "<br />\n";
        }
    }
}
mysql_close ($link);
?>

Qui di seguito gli esempi per ciascuna di queste funzioni tanto per impararne la sintassi

Funzione MYSQL AVG()

Esegui la media dei prezzi di tutti i libri disponibili

esempio 1
1
2
3
4
<?php
$Query 
" SELECT AVG( prezzo ) AS media_prezzo
FROM sql_libri "
;
?>
Restituisce => media_prezzo: 238.792727

Funzione MYSQL COUNT()

Conta tutti i libri disponibili

esempio 2
1
2
3
4
<?php
$Query 
" SELECT COUNT(Titolo) AS tot_libri
FROM sql_libri"
;
?>
Restituisce => tot_libri: 22

Funzione MYSQL MAX()

Mostra il prezzo maggiore che hanno i libri disponibili

esempio 3
1
2
3
4
<?php
$Query 
"SELECT MAX(prezzo) AS max_prezzo
FROM sql_libri"
;
?>
Restituisce => max_prezzo: 670.00

Funzione MYSQL MIN()

Mostra il prezzo minore che hanno i libri disponibili

esempio 4
1
2
3
4
<?php
$Query 
"SELECT MIN(prezzo) AS min_prezzo
FROM sql_libri"
;
?>
Restituisce => min_prezzo: 42.00

Funzione MYSQL SUM()

Mostra la somma dei prezzi di tutti i libri disponibili

esempio 5
1
2
3
4
<?php
$Query 
"SELECT SUM(quantita) AS tot_valore_libri
FROM sql_libri"
;
?>
Restituisce => tot_valore_libri: 5594

Abbinamento di più funzioni di aggregamento

Ora mostriamo come abbinare più funzioni di raggruppamento. In questa Query vengono abbinate le funzioni MIN () e MAX () ed il risultato viene mostrato qui di seguito.

NB: anche se la riga restituita è una, tuttavia i campi restituiti sono più di uno. Ne consegue che occorre modificare leggermete lo script mostrato ad inizio pagina.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<?php
include ('res/db_login.php');
if (!
$link mysql_connect($Host$User$Password)) {
    echo 
mysql_error() . "<br />\n"
} else {
    if (!
mysql_select_db($DBName)) {
        echo 
mysql_error() . "<br />\n"
    } else {
        
mysql_set_charset("utf8");
        
$result mysql_query($Query);
        
$num_row mysql_num_rows($result);
        
$numfields mysql_num_fields($result);
        if (!
$result) {
            echo 
mysql_error() . "<br />\n";
        } else {
            
$fields = array();
            for (
$i=0$i $numfields$i++) {
                
$fields[] = mysql_field_name($result$i);
            }
            
$row mysql_fetch_array($result);
            echo 
$num_row " record restituiti<br />\n";
            echo 
"<table class=\"tabella_it\">";
            echo 
"<tr>\n";
            for (
$i=0$i $numfields$i++) {
                echo 
"<th>" $fields[$i] . "</th>\n";
            }
            echo 
"</tr>\n";
            echo 
"<tr>\n";
            for (
$i=0$i $numfields$i++) {
                echo 
"<td>" $row[$fields[$i]] . "</td>\n";
            }
            echo 
"</tr>\n";
            echo 
"</table>\n";
        }
    }
}
mysql_close ($link);
?>

Calcola il valore minimo e quello massimo, con MIN e MAX, del prezzo dei libri

esempio 6
1
2
3
4
5
6
<?php
$Query 
"SELECT 
MIN(prezzo) AS min_prezzo,
MAX(prezzo) AS max_prezzo
FROM sql_libri"
;
?>
1 record restituiti
min_prezzo max_prezzo
42.00 670.00

Calcola la somma dei prezzi di ciascun libro, la somma dei libri disponibili ed il valore complessivo dell'intera biblioteca

esempio 7
1
2
3
4
5
6
7
8
<?php
$Query 
"SELECT 
SUM( prezzo ) AS tot_prezzo, 
SUM( quantita ) AS tot_disp, 
SUM( prezzo  *  quantita ) AS tot_valore
FROM sql_libri
"
;
?>
1 record restituiti
tot_prezzo tot_disp tot_valore
5253.44 5594 1185158.80

 

 



settore tecnico il sito di lorettabweb il Forum di sostegno
il forum il forum il forum