Corso
Questo tutorial presuppone che tu conosca già le basi di SQL, incluse le query CRUD (Create, Read, Update e Delete). Se vuoi rinfrescare le basi di SQL, le seguenti risorse possono tornarti utili:
Durante l'analisi dei dati in SQL, avrai bisogno di ordinare i risultati in base ai valori di una o più colonne delle tabelle che stai analizzando. In SQL, questo si fa usando la keyword order by. Questo tutorial ti introdurrà alla keyword order by guidandoti attraverso esempi reali in PostgreSQL. Il secondo link qui sopra offre una buona introduzione a PostgreSQL. Assicurati di dargli un'occhiata se non hai dimestichezza con PostgreSQL.
Creiamo innanzitutto una tabella chiamata countries in PostgreSQL. La tabella conterrà le seguenti colonne e tipi di dato:
- country_code (carattere)
- country_name (carattere)
- continent (carattere)
- region (carattere)
- independence_year (intero)
- local_name (carattere)
- gov_form (carattere)
- capital (carattere)
Creiamo rapidamente una tabella che rispetti queste specifiche. La seguente query SQL lo farà per te:
CREATE TABLE countries(
country_code varchar(50) primary key,
country_name varchar(50),
continent varchar(50),
region varchar(50),
independence_year smallint,
local_name varchar(50),
gov_form varchar(50),
capital varchar(50)
);
Per capire appieno il potenziale della keyword order by, ti servirà un numero consistente di record nella tabella countries. Puoi farlo importando un file .csv contenente la tabella dei paesi che hai appena creato.
Dopo aver importato il file .csv in PostgreSQL, esegui una query select sulla tabella countries e dovresti ottenere qualcosa del genere:

Ora hai un database pronto su cui puoi sperimentare la keyword order by. Iniziamo con la seguente query, che ordina i paesi in base ai loro nomi. I nomi dei paesi sono memorizzati nella colonna country_name.
select * from countries order by country_name;
L'output è:

Per impostazione predefinita, order by ordina i valori in ordine crescente. In questo caso, order by sta ordinando i nomi dei paesi in ordine alfabetico.
Possiamo anche ordinare le colonne in modo decrescente usando la keyword DESC:
select * from countries order by country_name desc;
Il risultato è il seguente:

La tabella countries contiene una colonna chiamata independence_year. Vediamo i dettagli dei paesi che hanno ottenuto l'indipendenza tra il 1850 e il 1900 e ordiniamoli anche alfabeticamente:
select * from countries where independence_year >= 1800 and independence_year <= 1900 order by country_name;
I risultati appariranno così:

Ordiniamo ora i dettagli dei paesi in base alle capitali in ordine decrescente:
select * from countries order by capital desc;
E ottieni:

Guarda i primi due valori nella colonna capital. Sono valori null e alfabeticamente compaiono verso la fine.
Puoi anche specificare particolari nomi di colonna in combinazione con order by.
select country_code, country_name, capital from countries order by capital;
I risultati saranno: 
Questo è tutto per questo tutorial. In questo tutorial hai imparato a usare la keyword order by in SQL per ordinare i valori delle colonne. Se vuoi rafforzare le tue conoscenze di SQL, dai un'occhiata a questo corso DataCamp: Joining Data in SQL.

