成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

「基礎」SQL-Hive中的Select From 解析

大數據
今天我們來講講Hive中最常用的 select from 語句知識要點。Hive系列文章預計10-20篇,主要講數據分析中最基礎的SQL技能。

[[396975]]

你好,我是巡山貓!

今天我們來講講Hive中最常用的 select from 語句知識要點。

Hive系列文章預計10-20篇,主要講數據分析中最基礎的SQL技能。

01-查詢表中的內容

查詢指定的某一列或某幾列,命令如下:

  1. SELECT 列名1,列名2,…… FROM 表名; 

查詢表中的所有字段時,可以使用*代表所有字段。星號(*)是選取所有列的快捷方式。命令如下:

  1. SELECT * FROM 表名; 

如果我們想查詢表 t_od_use_cnt 中的所有的user_id和use_cnt,具體命令如下:

  1. SELECT user_id 
  2.       ,use_cnt 
  3. FROM app.t_od_use_cnt; 

備注:app是數據庫名,如果當前查詢表與當前使用數據庫一致,可以省略不寫

02-Hive嚴格模式

在Hive中這樣寫雖然語法正確(不加分區),但在實際工作中這樣寫很可能會報錯。

因為Hive中的表一般數據量極大,為了防止用戶誤操作進行全表掃描,可以設置為查詢分區表時必須加入分區限制。比如這里我們的分區字段是date_8這個日期字段,工作中的表會要求我們必須限定查詢哪幾天的分區數據。這里我們可以輸入設置參數進行模擬,命令如下:

  1. hive (app)> set hive.mapred.mode; 
  2. hive.mapred.mode=nonstrict 
  3. hive (app)> set hive.mapred.mode=strict; 
  4. hive (app)> set hive.mapred.mode; 
  5. hive.mapred.mode=strict 

然后我們重新執行上面的查詢語句,報錯如下:

  1. hive (app)> SELECT user_id 
  2.           >       ,use_cnt 
  3.           > FROM app.t_od_use_cnt; 
  4. FAILED: SemanticException [Error 10041]: No partition predicate found for Alias "t_od_use_cnt" Table "t_od_use_cnt" 
  5. hive (app)>  

如下使用where語句限定分區即可解決這個問題:

  1. SELECT user_id 
  2.       ,use_cnt 
  3. FROM app.t_od_use_cnt 
  4. WHERE date_8 = '20210420'

03-limit限制查詢返回行數

上面的查詢語句會返回查詢到的所有數據,但有時候我們只是要確認一下表中的數據內容,或者要指定行數據,比如只要100行,這時只需要在查詢語句后加上(limit 數字)即可。

查詢表t_od_use_cnt中前5行數據,命令如下:

  1. SELECT user_id 
  2.       ,use_cnt 
  3. FROM app.t_od_use_cnt 
  4. WHERE date_8 = 20190101 Limit 5; 

運行結果如下:

  1. hive (app)> SELECT user_id 
  2.           >       ,use_cnt 
  3.           > FROM app.t_od_use_cnt 
  4.           > WHERE date_8 = 20210420 Limit 5; 
  5. OK 
  6. user_id  use_cnt 
  7. 10000  6 
  8. 10001  49 
  9. 10002  23 
  10. 10003  1 
  11. 10004  29 
  12. Time taken: 0.829 seconds, Fetched: 5 row(s) 
  13. hive (app)> 

04-列四則運算

在查詢時可以對數值類型的字段進行加減乘除和取余等四則運算

下面我們將表t_od_use_cnt中use_cnt列和is_active列相乘得到一個新列,其他用法依次類推。

  1. hive (app)> SELECT user_id 
  2.           >       ,use_cnt 
  3.           >       ,is_active 
  4.           >       ,use_cnt * is_active 
  5.           > FROM app.t_od_use_cnt 
  6.           > WHERE date_8 = 20210420 Limit 5; 
  7. OK 
  8. user_id  use_cnt  is_active  _c3 
  9. 10000  6  1  6 
  10. 10001  49  1  49 
  11. 10002  23  1  23 
  12. 10003  1  0  0 
  13. 10004  29  1  29 
  14. Time taken: 0.124 seconds, Fetched: 5 row(s) 
  15. hive (app)> 

05-列別名

可以看到上面的例子中我們通過兩個列相乘人為制造出一個新列,系統默認將其列名起為_c3。通常有必要給這些新產生的列起一個別名。已有列的列名如果含義不清晰也可以通過起別名的方式進行更改。不過別名只在本條SQL語句中生效,不影響原表中的字段名。

這里順便介紹一下字段命名規則:

1.不能和已有字段重復

2.只能包括小寫字母(a-z)、數字(0-9)、下劃線(_)

3.以字母開頭

4.單詞之間用下劃線_分割

這里我們將別名起為active_use_cnt,在列后面加 AS active_use_cnt即可。另AS可以省略,只用空格分隔別名也可以生效

  1. hive (app)> SELECT user_id 
  2.           >       ,use_cnt 
  3.           >       ,is_active 
  4.           >       ,use_cnt * is_active AS active_use_cnt 
  5.           > FROM app.t_od_use_cnt 
  6.           > WHERE date_8 = 20210420 Limit 5; 
  7. OK 
  8. user_id  use_cnt  is_active  active_use_cnt 
  9. 10000  6  1  6 
  10. 10001  49  1  49 
  11. 10002  23  1  23 
  12. 10003  1  0  0 
  13. 10004  29  1  29 
  14. Time taken: 0.239 seconds, Fetched: 5 row(s) 
  15. hive (app)> 

 

責任編輯:武曉燕 來源: 巡山貓說數據
相關推薦

2021-05-28 07:36:18

MySQLWhereHive

2021-04-18 18:13:42

SQLHive表格

2023-03-30 09:10:06

SQLSELECTFROM

2010-09-03 15:27:02

SQLSELECT語句

2010-11-11 10:18:59

select into

2010-11-11 11:37:22

SQL SELECT語

2010-11-09 10:10:08

SQL Server

2011-01-13 08:47:49

SQL Server數

2010-09-03 14:56:12

SQLSELECT語句

2010-09-07 16:38:36

SQL語句SELECT DIST

2010-05-26 13:30:18

MySQL SELEC

2010-11-11 11:49:02

SQL嵌套SELECT

2010-09-07 15:54:47

SQL語句LIKE

2010-09-03 15:08:03

SQLselect語句

2010-09-14 16:00:34

sql select語

2024-10-15 16:53:07

2021-05-28 07:40:08

selectcount(?)from t

2021-04-30 08:11:55

SQLSQL Server 數據庫

2010-09-03 14:31:31

SQLSELECT語句

2010-09-03 14:39:15

SQLSELECT語句
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 色婷婷久久久久swag精品 | 精品国产青草久久久久96 | 亚洲乱码国产乱码精品精98午夜 | 久热电影 | 欧美一级做a爰片免费视频 国产美女特级嫩嫩嫩bbb片 | 精品久久亚洲 | 99精品免费在线观看 | 亚洲97| 精品国产乱码久久久 | 欧美性网 | 成人免费观看男女羞羞视频 | 免费看欧美一级片 | 欧美日韩在线视频观看 | 国产真实乱对白精彩久久小说 | 自拍偷拍一区二区三区 | 狠狠操你 | 精品视频一区二区三区在线观看 | 国产精品成人久久久久a级 久久蜜桃av一区二区天堂 | 国产精品一区网站 | 成人免费三级电影 | 亚洲网站在线观看 | 亚洲成人一区 | 精品国产欧美一区二区三区不卡 | 久久黄色网| 欧美日韩网站 | 四虎永久免费黄色影片 | 亚洲高清av在线 | 久久精品久久久久久 | 日韩字幕 | 天天爱爱网 | 91av小视频| 欧美精品久久 | 欧美一区二区三区的 | 91综合网| 看片91| 欧美三级电影在线播放 | 久久精品色欧美aⅴ一区二区 | 天久久| 成人精品一区二区三区 | 日韩成人免费视频 | 久久大陆 |