# SQL COUNT(): come contare le righe all’interno di una tabella

SQL COUNT() ti consente di eseguire un’interrogazione per ottenere il numero di righe presenti all’interno di una tabella. Attraverso la condizione WHERE è anche possibile specificare ulteriormente i criteri di ricerca e output.

## Cos’è SQL COUNT()?

Lo [Structured Query Language](https://www.ionos.it/digitalguide/server/know-how/che-cose-sql/) prevede svariate funzioni per eseguire compiti matematici. In particolare, oltre a [SQL AVG()](https://www.ionos.it/digitalguide/server/configurazione/sql-avg/) e SUM(), SQL COUNT() è molto utile. Questa funzione restituisce il **numero di righe corrispondenti a un determinato criterio**, consentendoti di filtrare la tabella in base alle tue esigenze e quindi aumentando la chiarezza. SQL COUNT() è usata con il [comando SQL](https://www.ionos.it/digitalguide/server/configurazione/comandi-sql/) SELECT. Utilizzando vari parametri opzionali puoi istruire la funzione in modo ancora più preciso. Di seguito ti mostriamo alcuni possibili esempi.

## La sintassi della funzione

Per prima cosa vale la pena di dare uno sguardo alla sintassi e al funzionamento generale di SQL COUNT(). Nella variante standard il codice è costituito soltanto da due righe:

```sql
SELECT COUNT(*)
FROM tabella;
```

Spesso è però utile integrare una condizione `WHERE` per specificare l’output. In questo caso la funzione è un po’ più corta:

```sql
SELECT COUNT(*)
FROM tabella
WHERE condizione;
```

## Esempio di funzionamento

Per illustrare le possibilità offerte da SQL COUNT() creiamo una tabella di esempio chiamata `Lista clienti`. Questa tabella comprende i seguenti dati: numero cliente, nome del cliente, la loro località, il numero di articoli ordinati e la somma investita in euro. Si presenta come segue:

<table>
  <thead>
    <tr>
      <th><strong>Numero cliente</strong></th>
      <th><strong>Nome</strong></th>
      <th><strong>Località</strong></th>
      <th><strong>Articoli</strong></th>
      <th><strong>Importo totale</strong></th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>1427</td>
      <td>Russo</td>
      <td>Roma</td>
      <td>14</td>
      <td>634</td>
    </tr>
    <tr>
      <td>1377</td>
      <td>Rossi</td>
      <td>Milano</td>
      <td>9</td>
      <td>220</td>
    </tr>
    <tr>
      <td>1212</td>
      <td>Bianchi</td>
      <td>Milano</td>
      <td>15</td>
      <td>619</td>
    </tr>
    <tr>
      <td>1431</td>
      <td>Mancini</td>
      <td>Palermo</td>
      <td>22</td>
      <td>912</td>
    </tr>
    <tr>
      <td>1118</td>
      <td>Innocenti</td>
      <td>NULL</td>
      <td>10</td>
      <td>312</td>
    </tr>
  </tbody>
</table>

Se ora applichiamo la variante di base della funzione a questa tabella, otteniamo il codice seguente:

```sql
SELECT COUNT(*)
FROM lista clienti;
```

Come risultato otteniamo il valore `5`, perché la tua tabella contiene cinque righe.

## Specificare l’interrogazione delle colonne

Inserendo l’asterisco dopo `COUNT` fornisci al sistema l’istruzione di considerare tutte le righe e i campi, senza eccezioni. Puoi però anche limitare l’interrogazione a determinate colonne. In questo caso i **valori NULL non vengono considerati**. Quindi, se controlliamo il numero di righe alla voce `località`, otteniamo un risultato diverso:

```sql
SELECT COUNT(località)
FROM lista clienti;
```

Siccome per il cliente `Innocenti` non è stata inserita nessuna località, ora otteniamo il risultato `4`.

## La combinazione con WHERE

Nella fase successiva utilizziamo la funzione con una condizione `WHERE`, che ci aiuta a **filtrare le voci in base alle nostre esigenze**. Se ad esempio vogliamo solo controllare quanti clienti provengono da Milano, aggiungiamo questa condizione:

```sql
SELECT COUNT(località)
FROM lista clienti
WHERE località = 'Milano';
```

Ora come risultato otteniamo `2`.

SQL COUNT() funziona in modo analogo quando vogliamo considerare solo i clienti che hanno effettuato acquisti per almeno 400 euro:

```sql
SELECT COUNT(località)
FROM lista clienti
WHERE importo totale > 400;
```

La condizione è soddisfatta per tre clienti.

## Escludere le voci doppie

Usando la parola chiave `DISTINCT` puoi invece **escludere le voci doppie**. Se quindi vuoi sapere da quante città diverse provengono i tuoi clienti, usa il codice seguente:

```sql
SELECT COUNT(DISTINCT località)
FROM lista clienti;
```

In questo caso il risultato è `3`. Le due voci per Milano sono state contate solo una volta e, siccome il campo del cliente `Innocenti` è NULL, anch’esso è escluso dalla valutazione.

## La funzione con un alias

Per usare un altro nome per l’output puoi usare la parola chiave “AS”, che crea **un alias soltanto per la durata dell’interrogazione** (trovi maggiori informazioni su [SQL AS](https://www.ionos.it/digitalguide/server/configurazione/alias-sql/) nella nostra guida). Nel nostro esempio, un alias potrebbe essere:

```sql
SELECT COUNT(*) AS [numero di voci]
FROM lista clienti;
```

L’output si presenterà quindi come segue:

```sql
Numero di voci
5
```

Consiglio Scegli il modello di database più adatto a te: con l’[hosting SQL Server](https://www.ionos.it/cloud/sql-server-hosting "Hosting SQL Server di IONOS") di IONOS, oltre a poter scegliere tra MSSQL, MySQL e MariaDB, puoi anche contare su prestazioni eccellenti, una solida architettura di sicurezza e una consulenza personalizzata.


This is a markdown version of: [https://www.ionos.it/digitalguide/server/configurazione/sql-count/](https://www.ionos.it/digitalguide/server/configurazione/sql-count/) for AI/LLM consumption.