Ultimo aggiornamento il 26 febbraio 2020 08:07:42 (UTC / GMT +8 ore)
Funzione COUNT ()
La funzione SQL COUNT () restituisce il numero di righe in una tabella che soddisfa i criteri specificato nella clausola WHERE. Imposta il numero di righe o valori di colonna non NULL.
COUNT () restituisce 0 se non c’erano righe corrispondenti.
Sintassi:
COUNT(*)COUNT( expression )
La sintassi precedente è la sintassi standard ANSI di SQL 2003 generale. Ciò aiuta a comprendere il modo in cui viene utilizzata la funzione SQL COUNT (). Ma diversi fornitori di database possono avere modi diversi di applicare la funzione COUNT ().
Di seguito, puoi vedere che MySQL, PostgreSQL e Microsoft SQL Server seguono la stessa sintassi di cui sopra. Ma DB2 e Oracle differiscono leggermente.
Nel complesso, puoi utilizzare * o ALL o DISTINCT o qualche espressione insieme a COUNT per COUNT il numero di righe w.r.t. alcune condizioni o tutte le righe, a seconda degli argomenti che stai utilizzando insieme alla funzione COUNT ().
Supporto DBMS: funzione COUNT ()
DBMS | Comando |
MySQL | Supportato |
PostgreSQL | Supportato |
SQL Server | Supportato |
Oracle | Supportato |
DB2 e Oracle Sintassi:
COUNT ({*| expression}) OVER (window_clause)
Parametri:
Nome | Descrizione |
---|---|
ALL | Si applica a tutti i valori. ALL restituisce il numero di valori non NULL. |
DISTINCT | Valori duplicati ignorati e COUNT restituisce il numero di valori non null univoci. |
espressione | Espressione composta da una singola costante, variabile, funzione scalare o nome di colonna e può anche essere le parti di una query SQL che confronta i valori con altri valori. Espressione di qualsiasi tipo tranne testo o immagine. Le funzioni di aggregazione e le sottoquery non sono consentite. |
* | COUNT tutte le righe nella tabella di destinazione indipendentemente dal fatto che includano o meno NULL. |
Diagramma di sintassi – funzione COUNT ()
Nelle pagine successive, abbiamo discusso come applicare COUNT () con varie clausole SQL. Per queste applicazioni, abbiamo utilizzato Oracle 10g Express Edition.
Una cosa importante sulla funzione COUNT ():
Quando * viene utilizzato per COUNT (), tutti i record (righe) sono COUNTed se alcuni contenuti NULL ma COUNT (column_name) non COUNT un record se il suo campo è NULL. Vedi i seguenti esempi:
SQL COUNT righe in una tabella
Nell’esempio seguente, viene utilizzato un asterisco (*) seguito da SQL COUNT () che indica tutte le righe della tabella anche se è presente un valore NULL.
Tabella di esempio: orders
Per ottenere il numero di righe nella tabella “orders” , è possibile utilizzare la seguente istruzione SQL:
Codice SQL:
Risultato:
COUNT(*)--------- 34
Presentazione pittorica:
Seleziona COUNT (*) da più tabelle
La seguente query COUNT il numero di righe da due diverse tabelle (qui utilizziamo dipendenti e reparti) utilizzando il comando COUNT (*).
Codice SQL:
Risultato:
TOTAL_EMPLOYEES NO_OF_DEPARTMENTS--------------- ----------------- 107 27
SQL COUNT () con nome colonna
In questo esempio la funzione SQL COUNT () esclude i valori NULL per una colonna specifica se specificata la colonna come argomento tra parentesi di COUNT funz zione.
Tabella di esempio: listofitem
Per ottenere il numero di righe nella tabella “listofitem” con la seguente condizione –
1. COUNT numero di righe per la colonna “coname”
è possibile utilizzare la seguente istruzione SQL:
Codice SQL:
Risultato:
COUNT(CONAME)------------- 2
Spiega:
L’istruzione precedente CONTA le righe per la colonna “coname” che non sono NULL .
SQL COUNT righe con intestazione di colonna definita dall’utente
Per ottenere il numero di righe nella tabella “orders” con la seguente condizione –
1. il risultato deve essere visualizzato con un’intestazione “Numero di righe”,
può essere utilizzata la seguente istruzione SQL:
Codice SQL:
Risultato:
Number of Rows-------------- 36
SQL COUNT () con clausola where
La clausola WHERE può essere utilizzata insieme a Funzione SQL COUNT () per selezionare record specifici da una tabella rispetto a una determinata condizione.
Esempio:
Tabella di esempio: ordini
Per ottenere il numero di righe nella tabella “ordini” con la seguente condizione:
1.ord_amount rispetto all’ordine è maggiore di 1500,
può essere utilizzata la seguente istruzione SQL:
Output:
Number of Rows-------------- 22
Applicazione della funzione COUNT ()
Nelle pagine successive, abbiamo discusso come applicare COUNT () con varie clausole SQL. Per queste applicazioni, abbiamo utilizzato Oracle 10g Express Edition.
La pagina COUNT con DISTINCT illustra come applicare la funzione COUNT con DISTINCT e discute anche come applicare la funzione COUNT con la clausola ALL. A differenza dell’utilizzo di *, quando viene utilizzato ALL, i valori NULL non sono selezionati.
La pagina COUNT HAVING illustra come applicare la funzione COUNT con la clausola HAVING e HAVING e GROUP BY.
COUNT con GROUP La pagina BY discute come applicare la funzione COUNT con GRUPPO BY in ordine crescente e decrescente.
Nota: gli output della suddetta istruzione SQL mostrata qui sono presi utilizzando Oracle Database 10g Express Edition
Ecco una presentazione a diapositiva di tutte le funzioni aggregate.
Esercizi SQL di pratica
- Esercizi di SQL, pratica, soluzione
- SQL Recupera i dati dalle tabelle
- Operatori booleani e relazionali SQL
- Caratteri jolly SQL e operatori speciali
- Funzioni di aggregazione SQL
- Output query di formattazione SQL
- Quering SQL su più tabelle
- FILTRAGGIO e ORDINAMENTO su database HR
- JOINS SQL
- JOINS SQL
- JOINS SQL su Database delle risorse umane
- SOTTQUERIE SQL
- SOTTOSCOPIE SQL
- SQL SU BQUERIES sul database delle risorse umane
- SQL Union
- Vista SQL
- Gestione account utente SQL
- Database film
- Query di BASE sul database dei film
- SOTTOSCRIZIONI sul database dei film
- PARTECIPA al database dei film
- Database di calcio
- Introduzione
- Query di BASE sul database di calcio
- SOTTOSCRIZIONI su Database di calcio
- DOMANDE DI PARTECIPAZIONE a Database di calcio
- Database ospedaliero
- Introduzione
- BASIC, SUBQUERIES e JOINS
- Database dipendenti
- Query di BASE sul database dei dipendenti
- SOTTOSCRIZIONI sul database dei dipendenti
- Altro in arrivo!