Cos'è SQL ROUND?
La funzione ROUND è uno strumento fondamentale che regola la precisione dei dati numerici in SQL. Arrotonda i valori a un numero specificato di cifre decimali e semplifica i dati per l’analisi.
Per esempio, con SQL ROUND puoi trasformare un numero come 3.14159 in 3.14 arrotondandolo a due cifre decimali. Questo è utile quando la precisione assoluta non è necessaria e valori arrotondati sono sufficienti per l’interpretazione.
Ora che sai cos’è ROUND in SQL, vediamo come implementarla in diversi database.
Sintassi di ROUND
La funzione ROUND è comune, ma la sintassi non è uniforme in tutti i database. Ecco come differisce:
Sintassi in Oracle, MySQL e PostgreSQL
In questi database, ROUND segue un formato semplice con due parametri:
ROUND(number, decimal_places)
Qui:
- Input si riferisce al numero che vuoi arrotondare.
- Decimals specifica il numero di cifre decimali a cui arrotondare.
Sintassi in SQL Server
Tuttavia, SQL Server aggiunge una particolarità a questo formato: ha un terzo parametro opzionale chiamato function:
ROUND(number, decimal_places [, function])
Qui:
- I primi due parametri, input e decimals, funzionano proprio come negli altri database.
- Il parametro opzionale function specifica la direzione dell’arrotondamento in determinate condizioni.
Questa differenza di sintassi sembra piccola, ma è cruciale da capire perché ti aiuta ad applicare correttamente la funzione ROUND, indipendentemente dall’ambiente database in cui lavori.
Parametri della funzione SQL ROUND
La funzione ROUND utilizza tre parametri principali: input, decimals e operation. Capendo questi parametri, puoi usare efficacemente la funzione nei database SQL.
Parametro Input
Input è il numero che vuoi arrotondare. Può essere un numero diretto, una colonna del database o il risultato di un’espressione.
Parametro Decimal
Il parametro decimal controlla a quante cifre decimali arrotondare l’input. Un numero positivo qui arrotonda a quel numero di cifre decimali.
Parametro Function
Il parametro function è opzionale. Decide la direzione dell’arrotondamento per i valori esattamente a metà tra due numeri. Per impostazione predefinita, il suo valore è 0. Qualsiasi altro valore fa sì che la funzione tronchi o tagli l’input senza arrotondarlo.
Questi parametri aiutano a ottenere un arrotondamento dei numeri preciso e controllato.
Uso della funzione SQL ROUND nei database SQL
Puoi usare ROUND in vari database SQL. Tuttavia, a seconda del database, l’applicazione può differire leggermente nella sintassi e nel comportamento.
Ecco come usarla in alcuni dei database più popolari:
Implementazione in Oracle
La funzione ROUND in Oracle funziona con dati numerici e valori di data. Applicata ai numeri, arrotonda il valore alla cifra decimale specificata.
Per i valori di data, ROUND può regolare una data al giorno, mese, anno più vicino, ecc., a seconda del formato specificato.
Ecco un esempio di come funziona in Oracle:
Supponiamo di avere la seguente tabella PRODUCTS.

Ora, se vuoi arrotondare la colonna standard_cost a una cifra decimale, ecco come faresti la query.
SELECT Round(STANDARD_COST, 1)
FROM PRODUCTS
Ecco come apparirà il costo arrotondato.

Implementazione in MySQL
In MySQL, ROUND funziona in modo simile per arrotondare i numeri a una precisione specificata.
Ecco un esempio di come funziona:
Supponiamo di avere la seguente tabella purchase_details.

Ora, se vuoi arrotondare la colonna Paid_amount a due cifre decimali, ecco come faresti la query.
SELECT Round(Paid_amount, 2)
AS Result
FROM purchase_details
Ecco come apparirà l’importo arrotondato.

Implementazione in PostgreSQL
Anche PostgreSQL implementa ROUND in modo simile. Ecco un esempio di come puoi implementarla:
Supponiamo di avere la seguente tabella reviews.

Ora, se vuoi arrotondare la colonna imdb_score a zero cifre decimali, ecco come faresti la query.
SELECT Round(imdb_score, 0)
AS Result
FROM cinema.reviews
Ecco come appariranno le recensioni dei film arrotondate.

Implementazione in SQL Server
In Microsoft SQL Server, ROUND si comporta in modo simile a Oracle quando si lavora con valori numerici.
Ma un aspetto unico di SQL Server è il suo terzo parametro — function — che consente di specificare se si vuole arrotondare il numero (function = 0 o omesso) o troncarlo (function = 1).
Ecco un esempio di come funziona ROUND in un server SQL:
Supponiamo di avere la seguente tabella order_items.

Ora, se vuoi arrotondare la colonna list_price a una cifra decimale, ecco come faresti la query.
SELECT Round(list_price, 1,0)
AS Result
FROM sales.order_items
Ecco come apparirà il prezzo arrotondato.

Implementazione pratica
Ora che conosci i parametri, è il momento di implementare concretamente la funzione ROUND. Vediamo quindi come farlo con numeri e date nell’analisi dei dati.
ROUND con i numeri
Supponiamo di avere una tabella chiamata orderDetails, con una colonna di prezzi con diverse cifre decimali.

Ora, se vuoi arrotondare la colonna Price a una cifra decimale, ecco come faresti la query.
SELECT Round(Price, 1)
AS Result
FROM orderDetails
Questa query arrotonda ciascun prezzo nella tabella a una cifra decimale.
E questo è l’aspetto del risultato:

ROUND con le date
In SQL, puoi arrotondare i valori di data a un componente specifico come anno, mese, ora o minuto.
Supponiamo di avere una tabella chiamata orders.

Ora, se vuoi arrotondare la colonna order_date all’anno più vicino, ecco come faresti la query:
SELECT YEAR(order_date)
AS ROUNDED_DATE
FROM sales.orders
Questa query arrotonda ogni data nella colonna all’anno più vicino.
E questo è l’aspetto del risultato:

Tecniche avanzate con SQL ROUND
Oltre all’arrotondamento di base, la funzione ROUND in SQL è usata anche in scenari più avanzati, come:
- SQL round up
- SQL round down
- Arrotondamento a intervalli specifici
Ecco come funziona ciascuno di questi casi:
SQL ROUND Up e ROUND Down
Mentre la funzione ROUND arrotonda al valore più vicino, puoi ottenere direzioni di arrotondamento specifiche usando le funzioni CEIL e FLOOR.
La funzione CEIL arrotonda qualsiasi valore decimale per eccesso al numero intero successivo. Per esempio, guarda questo:
Hai una tabella chiamata reviews.

Ecco come applicherai la funzione CEIL alla colonna user_score.
Select CEIL(user_score)
FROM reviews
Questo è il risultato che otterrai:

A differenza della funzione CEIL, FLOOR arrotonda per difetto qualsiasi valore decimale al numero intero più vicino. Per esempio, guarda questo.
Se applichi FLOOR alla precedente tabella reviews, ecco come farai la query:
Select FLOOR(user_score)
FROM reviews
Questo è il risultato che otterrai:

Arrotondamento a intervalli specifici
A volte devi arrotondare i numeri a intervalli specifici come il più vicino 5, 10 o 100. Per farlo, dovresti combinare ROUND con divisione e moltiplicazione.
Diciamo che devi arrotondare un numero o una colonna al più vicino 10, e per farlo eseguirai la seguente query:
SELECT Round(number / 10) * 10
FROM table_name
Questa tecnica aiuta con le sfide nella gestione dell’inventario o nell’analisi statistica, dove ha più senso raggruppare i dati in intervalli specifici.
Funzioni simili a SQL ROUND
Oltre a ROUND, esistono diverse altre funzioni in SQL per gestire arrotondamenti e troncamenti dei numeri.
Funzione CEIL
La funzione CEILING, o CEIL, arrotonda un numero per eccesso all’intero più vicino o a una precisione specificata. CEILING arrotonda sempre per eccesso, a differenza di ROUND, che arrotonda al valore più vicino.
Per esempio: CEILING(2.3) restituisce 3.
Questa funzione è particolarmente utile quando devi assicurarti che il valore arrotondato non sia inferiore al numero originale.
Funzione FLOOR
La funzione FLOOR arrotonda un numero per difetto all’intero più vicino o a una precisione specificata.
Per esempio: FLOOR(2.7) restituisce 2.
Questa funzione garantisce che il numero arrotondato non sia maggiore dell’originale.
Funzione TRUNC
La funzione TRUNC (troncamento) rimuove la parte decimale di un numero, arrotondando verso zero.
Per esempio: TRUNC(2.9) restituirà 2, e TRUNC(-2.9) restituirà -2.
TRUNC rimuove la parte frazionaria di un numero senza necessariamente arrotondarlo.
In poche parole, ogni funzione — CEILING, FLOOR e TRUNC — ha uno scopo specifico nella manipolazione dei dati, e completa la funzione ROUND.
Con queste funzioni, puoi gestire un’ampia gamma di scenari di arrotondamento con maggiore precisione e adeguatezza al contesto dei dati. Se vuoi imparare altre tecniche SQL simili, dai un’occhiata alla cheat sheet e inizia a fare pratica.
Conclusione
Avere dati corretti è davvero importante, e la funzione SQL ROUND è un ottimo modo per assicurarti che i tuoi numeri siano facili da usare. Ti aiuta ad arrotondare i numeri alla cifra decimale più vicina e a rendere i dati più comprensibili.
Se hai bisogno di arrotondare i numeri in un modo specifico, hai a disposizione altre funzioni come CEIL, FLOOR e TRUNC che ti danno una mano.
Che tu stia iniziando come junior data practitioner o voglia affinare le tue competenze, corsi come SQL Fundamentals e Intermediate SQL ti saranno utili.
Adesso è il momento di mettere in pratica. In bocca al lupo!
Sono una content strategist: mi piace semplificare argomenti complessi. Ho aiutato aziende come Splunk, Hackernoon e Tiiny Host a creare contenuti coinvolgenti e informativi per il loro pubblico.



Quando lavori con i dati, la precisione è importante. Ma come data scientist o data engineer, ogni giorno affronti la complessità di trasformare i dati in insight.
Dato che c’è sempre margine per affinare le tue competenze, puoi migliorare le tue capacità e la tua sicurezza nella gestione dei dati usando la funzione SQL `ROUND`.
Questa guida ha lo scopo di esplorare come una funzione SQL `ROUND` può affinare la precisione dei dati nelle tue analisi.