
- Hive - Inicio
- Hive - Introducción
- Hive - Instalación
- Hive - Tipos de Datos
- Hive - Create Database
- Hive - Drop Database
- Hive - Create Table
- Hive - Alter Table
- Hive - Drop Table
- Hive - Partición
- Hive - Función de Operadores
- Hive - Hive - Función de Funciones
- Hive - Ver e Índices
- HiveQL
- HiveQL - Select-Where
- HiveQL - Select Order By
- HiveQL - Select Group By
- HiveQL - Select Joins
HiveQL - Select-Order By
En este captulo se explica cmo utilizar la clusula ORDER BY de una instruccin SELECT. La clusula ORDER BY se usa para recuperar los detalles basndose en una columna y ordenar el conjunto de resultados por orden ascendente o descendente.
Sintaxis
A continuacin se muestra la sintaxis de la clusula ORDER BY:
SELECT [ALL | DISTINCT] select_expr, select_expr, ... FROM table_reference [WHERE where_condition] [GROUP BY col_list] [HAVING having_condition] [ORDER BY col_list]] [LIMIT number];
Ejemplo
Tomemos un ejemplo para SELECCIONAR... de la clusula order by. Asumir tabla de empleados como se indica a continuacin, con los campos nombre Id, el nombre, el sueldo, la designacin, y Depto. Generar una consulta para recuperar los detalles de empleado con el fin de utilizar nombre de Departamento.
+------+--------------+-------------+-------------------+--------+ | ID | Name | Salary | Designation | Dept | +------+--------------+-------------+-------------------+--------+ |1201 | Gopal | 45000 | Technical manager | TP | |1202 | Manisha | 45000 | Proofreader | PR | |1203 | Masthanvali | 40000 | Technical writer | TP | |1204 | Krian | 40000 | Hr Admin | HR | |1205 | Kranthi | 30000 | Op Admin | Admin | +------+--------------+-------------+-------------------+--------+
La siguiente consulta recupera los detalles de empleado con el escenario anterior:
hive> SELECT Id, Name, Dept FROM employee ORDER BY DEPT;
El xito de la ejecucin de la consulta, se llega a ver la siguiente respuesta:
+------+--------------+-------------+-------------------+--------+ | ID | Name | Salary | Designation | Dept | +------+--------------+-------------+-------------------+--------+ |1205 | Kranthi | 30000 | Op Admin | Admin | |1204 | Krian | 40000 | Hr Admin | HR | |1202 | Manisha | 45000 | Proofreader | PR | |1201 | Gopal | 45000 | Technical manager | TP | |1203 | Masthanvali | 40000 | Technical writer | TP | +------+--------------+-------------+-------------------+--------+
Programa JDBC
Aqu est el programa JDBC para la aplicacin de la clusula order by para el ejemplo dado.
import java.sql.SQLException; import java.sql.Connection; import java.sql.ResultSet; import java.sql.Statement; import java.sql.DriverManager; public class HiveQLOrderBy { private static String driverName = "org.apache.hadoop.hive.jdbc.HiveDriver"; public static void main(String[] args) throws SQLException { // Register driver and create driver instance Class.forName(driverName); // get connection Connection con = DriverManager.getConnection("jdbc:hive://localhost:10000/userdb", "", ""); // create statement Statement stmt = con.createStatement(); // execute statement Resultset res = stmt.executeQuery("SELECT * FROM employee ORDER BY DEPT;"); System.out.println(" ID \t Name \t Salary \t Designation \t Dept "); while (res.next()) { System.out.println(res.getInt(1) + " " + res.getString(2) + " " + res.getDouble(3) + " " + res.getString(4) + " " + res.getString(5)); } con.close(); } }
El programa se guarda en un archivo llamado HiveQLOrderBy.java. Utilice los siguientes comandos para compilar y ejecutar este programa.
$ javac HiveQLOrderBy.java $ java HiveQLOrderBy
Salida:
ID Name Salary Designation Dept 1205 Kranthi 30000 Op Admin Admin 1204 Krian 40000 Hr Admin HR 1202 Manisha 45000 Proofreader PR 1201 Gopal 45000 Technical manager TP 1203 Masthanvali 40000 Technical writer TP 1204 Krian 40000 Hr Admin HR