Impala - Trier par clause

L'Impala ORDER BYLa clause est utilisée pour trier les données dans un ordre croissant ou décroissant, en fonction d'une ou plusieurs colonnes. Par défaut, certaines bases de données trient les résultats de la requête par ordre croissant.

Syntaxe

Voici la syntaxe de la clause ORDER BY.

select * from table_name ORDER BY col_name [ASC|DESC] [NULLS FIRST|NULLS LAST]

Vous pouvez organiser les données du tableau par ordre croissant ou décroissant à l'aide des mots-clés ASC ou DESC respectivement.

De la même manière, si nous utilisons NULLS FIRST, toutes les valeurs nulles du tableau sont disposées dans les premières lignes; et si nous utilisons NULLS LAST, les lignes contenant des valeurs nulles seront arrangées en dernier.

Exemple

Supposons que nous ayons une table nommée customers dans la base de données my_db et son contenu est le suivant -

[quickstart.cloudera:21000] > select * from customers;
Query: select * from customers 
+----+----------+-----+-----------+--------+ 
| id | name     | age | address   | salary | 
+----+----------+-----+-----------+--------+ 
| 3  | kaushik  | 23  | Kota      | 30000  | 
| 1  | Ramesh   |  32 | Ahmedabad | 20000  | 
| 2  | Khilan   | 25  | Delhi     | 15000  | 
| 6  | Komal    | 22  | MP        | 32000  | 
| 4  | Chaitali | 25  | Mumbai    | 35000  | 
| 5  | Hardik   | 27  | Bhopal    | 40000  | 
+----+----------+-----+-----------+--------+ 
Fetched 6 row(s) in 0.51s

Voici un exemple d'organisation des données dans le customers table, dans l'ordre croissant de leur id’s en utilisant le order by clause.

[quickstart.cloudera:21000] > Select * from customers ORDER BY id asc;

Lors de l'exécution, la requête ci-dessus produit la sortie suivante.

Query: select * from customers ORDER BY id asc 
+----+----------+-----+-----------+--------+ 
| id | name     | age | address   | salary | 
+----+----------+-----+-----------+--------+ 
| 1  | Ramesh   | 32  | Ahmedabad | 20000  | 
| 2  | Khilan   | 25  | Delhi     | 15000  | 
| 3  | kaushik  | 23  | Kota      | 30000  | 
| 4  | Chaitali | 25  | Mumbai    | 35000  | 
| 5  | Hardik   | 27  | Bhopal    | 40000  | 
| 6  | Komal    | 22  | MP        | 32000  | 
+----+----------+-----+-----------+--------+ 
Fetched 6 row(s) in 0.56s

De la même manière, vous pouvez organiser les données de customers tableau dans l'ordre décroissant à l'aide du order by clause comme indiqué ci-dessous.

[quickstart.cloudera:21000] > Select * from customers ORDER BY id desc;

Lors de l'exécution, la requête ci-dessus produit la sortie suivante.

Query: select * from customers ORDER BY id desc 
+----+----------+-----+-----------+--------+ 
| id | name     | age | address   | salary | 
+----+----------+-----+-----------+--------+ 
| 6  | Komal    | 22  | MP        | 32000  | 
| 5  | Hardik   | 27  | Bhopal    | 40000  | 
| 4  | Chaitali | 25  | Mumbai    | 35000  | 
| 3  | kaushik  | 23  | Kota      | 30000  | 
| 2  | Khilan   | 25  | Delhi     | 15000  |
| 1  | Ramesh   | 32  | Ahmedabad | 20000  | 
+----+----------+-----+-----------+--------+ 
Fetched 6 row(s) in 0.54s