HiveQL - Auswählen Bestellung Durch


Advertisements

In diesem Kapitel wird erläutert, wie verwendet die ORDER BY-Klausel in einer SELECT-Anweisung werden. Die ORDER BY-Klausel wird verwendet, um abrufen die Details basierend auf einer Spalte und sortiert die Ergebnisse setzen durch aufsteigender oder absteigender Reihenfolge.

Syntax

Da unten ist die Syntax der ORDER BY-Klausel:

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];

Beispiel

Nehmen wir ein Beispiel für SELECT ... ORDER BY-Klausel. Angenommen Mitarbeitertabelle wie unten gegeben, mit den Feldern mit dem Namen ID, Name, Gehalt, Benennung und Dept. Generieren Sie eine Abfrage, um abrufen die MitarbeiterNähere in um durch mitHilfe Abteilungsname abrufen.

+------+--------------+-------------+-------------------+--------+
| 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  |
+------+--------------+-------------+-------------------+--------+

Die folgende Abfrage ruft die MitarbeiterNähere unter Verwendung des obigen Szenario:

hive> SELECT Id, Name, Dept FROM employee ORDER BY DEPT;

Auf erfolgreicher Ausführung der Abfrage, erhalten Sie die folgende Antwort zu sehen:

+------+--------------+-------------+-------------------+--------+
| 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     |
+------+--------------+-------------+-------------------+--------+

JDBC-Programm

Hier ist der JDBC-Programm, um Bestellung By-Klausel für das gegebene Beispiel gelten.

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();
   }
}

Speichern Sie das Programm in einer Datei namens HiveQLOrderBy.java. Verwenden Sie die folgenden Befehle zu kompilieren und das Programm hinrichten.

$ javac HiveQLOrderBy.java
$ java HiveQLOrderBy

Ausgabe:

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
Advertisements