在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ 大數(shù)據(jù)/ HiveQL Select Group By
Hive創(chuàng)建數(shù)據(jù)庫
Hive內(nèi)置函數(shù)
Hive刪除數(shù)據(jù)庫
Hive視圖和索引
Hive內(nèi)置運(yùn)算符
Hive刪除表
HiveQL Select Order By
HiveQL Select Group By
Hive修改表
HiveQL Select Join
HiveQL Select Where
Hive分區(qū)
Hive教程
Hive數(shù)據(jù)類型
Hive安裝
Hive創(chuàng)建表

HiveQL Select Group By

本章介紹了SELECT語句的GROUP BY子句。GROUP BY子句用于分類所有記錄結(jié)果的特定集合列。它被用來查詢一組記錄。

語法

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

示例

讓我們以SELECT... GROUP BY子句為例。假設(shè)員工表有如下Id, Name, Salary, Designation, 和 Dept字段。產(chǎn)生一個查詢以檢索每個部門的員工數(shù)量。

+------+--------------+-------------+-------------------+--------+ 
| ID   | Name         | Salary      | Designation       | Dept   |
+------+--------------+-------------+-------------------+--------+ 
|1201  | Gopal        | 45000       | Technical manager | TP     | 
|1202  | Manisha      | 45000       | Proofreader       | PR     | 
|1203  | Masthanvali  | 40000       | Technical writer  | TP     | 
|1204  | Krian        | 45000       | Proofreader       | PR     | 
|1205  | Kranthi      | 30000       | Op Admin          | Admin  |
+------+--------------+-------------+-------------------+--------+

下面使用上述業(yè)務(wù)情景查詢檢索員工的詳細(xì)信息。

hive> SELECT Dept,count(*) FROM employee GROUP BY DEPT;

成功執(zhí)行查詢后,能看到以下回應(yīng):

+------+--------------+ 
| Dept | Count(*)     | 
+------+--------------+ 
|Admin |    1         | 
|PR    |    2         | 
|TP    |    3         | 
+------+--------------+

JDBC 程序

下面給出的是JDBC程序應(yīng)用對給定的GROUP BY子句例子。

import java.sql.SQLException;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.sql.DriverManager;

public class HiveQLGroupBy {
   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 Dept,count(*)  + FROM employee GROUP BY DEPT; ”);
      System.out.println(" Dept \t count(*)");
      
      while (res.next()) {
         System.out.println(res.getString(1) + " " + res.getInt(2)); 
      }
      con.close();
   }
}

保存程序在一個名為HiveQLGroupBy.java文件。使用下面的命令來編譯并執(zhí)行這個程序。

$ javac HiveQLGroupBy.java
$ java HiveQLGroupBy

輸出:

 Dept     Count(*)
 Admin       1
 PR          2
 TP          3

上一篇:Hive修改表下一篇:Hive教程