Impala - Ordem por cláusula

O impala ORDER BYcláusula é usada para classificar os dados em ordem crescente ou decrescente, com base em uma ou mais colunas. Alguns bancos de dados classificam os resultados da consulta em ordem crescente por padrão.

Sintaxe

A seguir está a sintaxe da cláusula ORDER BY.

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

Você pode organizar os dados na tabela em ordem crescente ou decrescente usando as palavras-chave ASC ou DESC respectivamente.

Da mesma forma, se usarmos NULLS FIRST, todos os valores nulos da tabela serão organizados nas linhas superiores; e se usarmos NULLS LAST, as linhas contendo valores nulos serão organizadas por último.

Exemplo

Suponha que temos uma mesa chamada customers no banco de dados my_db e seu conteúdo é o seguinte -

[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

A seguir está um exemplo de organização dos dados no customers mesa, em ordem crescente de sua id’s usando o order by cláusula.

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

Na execução, a consulta acima produz a seguinte saída.

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

Da mesma forma, você pode organizar os dados de customers tabela em ordem decrescente usando o order by cláusula conforme mostrado abaixo.

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

Na execução, a consulta acima produz a seguinte saída.

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