91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

SQL Hive中的Select Fromsql怎么使用

發布時間:2022-02-16 10:10:21 來源:億速云 閱讀:203 作者:iii 欄目:開發技術

這篇“SQL Hive中的Select Fromsql怎么使用”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“SQL Hive中的Select Fromsql怎么使用”文章吧。

Select Fromsql里面最基本的查詢語句,select*from后面加表名,這樣查詢出來是這個表里面的所以數據,后面還可以加where條件挑選,也能夠加Orderby排序,也能夠加groupby分組。

SQL Hive中的Select Fromsql怎么使用

01-查詢表中的內容

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

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

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

SELECT * FROM 表名;

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

SELECT user_id
     ,use_cnt
FROM app.t_od_use_cnt;

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

02-Hive嚴格模式

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

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

hive (app)> set hive.mapred.mode;
hive.mapred.mode=nonstrict
hive (app)> set hive.mapred.mode=strict;
hive (app)> set hive.mapred.mode;
hive.mapred.mode=strict

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

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

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

SELECT user_id
     ,use_cnt
FROM app.t_od_use_cnt
WHERE date_8 = '20210420';

03-limit限制查詢返回行數

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

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

SELECT user_id
     ,use_cnt
FROM app.t_od_use_cnt
WHERE date_8 = 20190101 Limit 5;

運行結果如下:

hive (app)> SELECT user_id
         >       ,use_cnt
         > FROM app.t_od_use_cnt
         > WHERE date_8 = 20210420 Limit 5;
OK
user_id  use_cnt
10000  6
10001  49
10002  23
10003  1
10004  29
Time taken: 0.829 seconds, Fetched: 5 row(s)
hive (app)>

04-列四則運算

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

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

hive (app)> SELECT user_id         >       ,use_cnt         >       ,is_active         >       ,use_cnt * is_active         > FROM app.t_od_use_cnt         > WHERE date_8 = 20210420 Limit 5;OKuser_id  use_cnt  is_active  _c310000  6  1  610001  49  1  4910002  23  1  2310003  1  0  010004  29  1  29Time taken: 0.124 seconds, Fetched: 5 row(s)hive (app)>

05-列別名

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

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

1.不能和已有字段重復

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

3.以字母開頭

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

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

hive (app)> SELECT user_id
         >       ,use_cnt
         >       ,is_active
         >       ,use_cnt * is_active AS active_use_cnt
         > FROM app.t_od_use_cnt
         > WHERE date_8 = 20210420 Limit 5;
OK
user_id  use_cnt  is_active  active_use_cnt
10000  6  1  6
10001  49  1  49
10002  23  1  23
10003  1  0  0
10004  29  1  29
Time taken: 0.239 seconds, Fetched: 5 row(s)
hive (app)>

以上就是關于“SQL Hive中的Select Fromsql怎么使用”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

尼玛县| 什邡市| 北辰区| 伊川县| 辉县市| 盐亭县| 沙坪坝区| 安陆市| 蒙城县| 沂源县| 彭泽县| 土默特右旗| 水城县| 寿阳县| 石阡县| 瓮安县| 建湖县| 青川县| 丰镇市| 莱阳市| 仁布县| 依安县| 永泰县| 浦北县| 旬阳县| 桑日县| 巴青县| 罗定市| 芦山县| 得荣县| 柳江县| 宜章县| 宁德市| 萝北县| 托克逊县| 翼城县| 屯门区| 天等县| 许昌市| 尚志市| 麦盖提县|