Vai al contenuto principale

Padroneggiare SQL ROUND: gestione della precisione nell'analisi dei dati

Impara a usare la funzione SQL ROUND in questo tutorial. Copre l’implementazione della funzione ROUND in Oracle, MySQL, PostgreSQL e SQL Server.
· 10 min leggi

Scopri con l'IA

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.

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.

image8.jpg

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.

image7.jpg

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.

image16.jpg

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.

image3.jpg

Implementazione in PostgreSQL

Anche PostgreSQL implementa ROUND in modo simile. Ecco un esempio di come puoi implementarla:

Supponiamo di avere la seguente tabella reviews.

image14.jpg

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.

image9.jpg

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.

image10.jpg

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.

image6.jpg

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.

image4.jpg

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:

image2.jpg

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.

image5.jpg

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:

image15.jpg

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.

image13.jpg

Ecco come applicherai la funzione CEIL alla colonna user_score.

Select CEIL(user_score) 
FROM reviews

Questo è il risultato che otterrai:

image11.jpg

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:

image1.jpg

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!

Laiba Siddiqui

Autore

Laiba Siddiqui

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.

Argomenti

Correlato