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

SQL-Hive中的Where語(yǔ)句解析

數(shù)據(jù)庫(kù) MySQL
用AND連接兩個(gè)及以上的謂詞操作符代表且的意思,即必須所有條件同時(shí)滿足;用OR連接兩個(gè)及以上的謂詞操作符代表或的意思,即至少有一個(gè)條件滿足即可。

[[402095]]

本文轉(zhuǎn)載自微信公眾號(hào)「巡山貓說(shuō)數(shù)據(jù)」,作者巡山貓說(shuō)數(shù)據(jù)。轉(zhuǎn)載本文請(qǐng)聯(lián)系巡山貓說(shuō)數(shù)據(jù)公眾號(hào)。

你好,我是巡山貓!

今天我們來(lái)講講Hive中最常用的 where 語(yǔ)句知識(shí)要點(diǎn)。

01-基礎(chǔ)語(yǔ)法

命令如下:

  1. SELECT 列名 
  2. FROM 表名 
  3. WHERE 列名 運(yùn)算符 值 [AND 列名 運(yùn)算符 值] [OR 列名 運(yùn)算符 值]; 

備注:WHERE后的列名必須用真實(shí)列名,不能使用自定義的別名,否則會(huì)報(bào)錯(cuò)。

02-謂詞操作符詳解

下面表中描述了謂詞操作符,這些操作符同樣可以用于JOIN…ON和HAVING語(yǔ)句中,后續(xù)我們會(huì)逐一介紹這兩個(gè)語(yǔ)句

備注:NULL在Hive中代表空值的意思。

03-AND & OR

用AND連接兩個(gè)及以上的謂詞操作符代表且的意思,即必須所有條件同時(shí)滿足;用OR連接兩個(gè)及以上的謂詞操作符代表或的意思,即至少有一個(gè)條件滿足即可。

下面舉幾個(gè)例子:

1、取出表t_od_use_cnt中滿足以下條件的5條記錄:

·日期為20190101到20190102之間;

·平臺(tái)取ios平臺(tái)(1為andriod,2為ios);

·當(dāng)日使用次數(shù)大于等于30。

語(yǔ)句如下:

  1. SELECT * 
  2. FROM app.t_od_use_cnt 
  3. WHERE date_8 BETWEEN 20190101 AND 20190102 
  4.       AND platform = '2' 
  5.       AND use_cnt >= 30 limit 5; 

備注:數(shù)值型的值可以直接寫(xiě),但字符格式及string格式的值必須加引號(hào)

運(yùn)行結(jié)果如下:

  1. hive (app)> SELECT * 
  2.           > FROM app.t_od_use_cnt 
  3.           > WHERE date_8 BETWEEN 20190101 AND 20190102 
  4.           >       AND platform = '2' 
  5.           >       AND use_cnt >= 30 limit 5; 
  6. OK 
  7. t_od_use_cnt.platform  t_od_use_cnt.app_version  t_od_use_cnt.user_id  t_od_use_cnt.use_cnt  t_od_use_cnt.is_active  t_od_use_cnt.date_8 
  8. 2  1.3  10001  49  1  20190101 
  9. 2  1.1  10016  37  1  20190101 
  10. 2  1.4  10025  44  1  20190101 
  11. 2  1.1  10034  49  1  20190101 
  12. 2  1.2  10039  37  1  20190101 
  13. Time taken: 0.28 seconds, Fetched: 5 row(s) 

2、取出表t_od_use_cnt中滿足以下條件的5條記錄:

·日期大于20190102;

·1,3和1.4版本且當(dāng)日使用次數(shù)大于等于30 或 1,1和1.2版本且當(dāng)日使用次數(shù)大于等于20。

語(yǔ)句如下:

  1. SELECT * 
  2. FROM app.t_od_use_cnt 
  3. WHERE date_8 > 20190102 
  4.       AND ( 
  5.             ( 
  6.                   app_version IN ('1.3''1.4'
  7.                   AND use_cnt >= 30 
  8.                   ) 
  9.             OR ( 
  10.                   app_version IN ('1.1''1.2'
  11.                   AND use_cnt >= 20 
  12.                   ) 
  13.             ) limit 5; 

備注:當(dāng)and、or同時(shí)出現(xiàn)時(shí),要使用()將條件區(qū)分開(kāi),Hive會(huì)優(yōu)先執(zhí)行括號(hào)內(nèi)的條件語(yǔ)句。這樣一來(lái)避免邏輯錯(cuò)誤,二來(lái)使邏輯更清晰。

運(yùn)行結(jié)果如下:

  1. hive (app)> SELECT * 
  2.           > FROM app.t_od_use_cnt 
  3.           > WHERE date_8 > 20190102 
  4.           >       AND ( 
  5.           >             ( 
  6.           >                   app_version IN ('1.3''1.4'
  7.           >                   AND use_cnt >= 30 
  8.           >                   ) 
  9.           >             OR ( 
  10.           >                   app_version IN ('1.1''1.2'
  11.           >                   AND use_cnt >= 20 
  12.           >                   ) 
  13.           >             ) limit 5; 
  14. OK 
  15. t_od_use_cnt.platform  t_od_use_cnt.app_version  t_od_use_cnt.user_id  t_od_use_cnt.use_cnt  t_od_use_cnt.is_active  t_od_use_cnt.date_8 
  16. 2  1.2  10400  40  1  20190103 
  17. 1  1.2  10402  32  1  20190103 
  18. 1  1.2  10403  41  1  20190103 
  19. 2  1.4  10405  50  1  20190103 
  20. 2  1.1  10406  24  1  20190103 
  21. Time taken: 0.298 seconds, Fetched: 5 row(s) 

04-Like & Rlike & Regexp

這三種語(yǔ)句的含義和用法上面已經(jīng)有所介紹,rlike、regexp功能和like功能一致,只是like是后面只支持簡(jiǎn)單表達(dá)式匹配(_%),而rlike、regexp則支持標(biāo)準(zhǔn)正則表達(dá)式語(yǔ)法。所以如果正則表達(dá)式使用熟練的話,建議使用rlike,功能更加強(qiáng)大。所有的like匹配都可以被替換成rlike。反之,則不行。注意事項(xiàng):like是從頭逐一字符匹配的,但是rlike則不是。這里我們舉幾個(gè)例子。

1、取出表t_od_use_cnt中滿足以下條件的5條記錄:

·日期大于20190102;

·user_id以5結(jié)尾

語(yǔ)句如下:

  1. SELECT * 
  2. FROM app.t_od_use_cnt 
  3. WHERE date_8 > 20190102 
  4.       AND user_id LIKE '%5' limit 5; 

運(yùn)行結(jié)果如下:

  1. hive (app)> SELECT * 
  2.           > FROM app.t_od_use_cnt 
  3.           > WHERE date_8 > 20190102 
  4.           >       AND user_id LIKE '%5' limit 5; 
  5. OK 
  6. t_od_use_cnt.platform  t_od_use_cnt.app_version  t_od_use_cnt.user_id  t_od_use_cnt.use_cnt  t_od_use_cnt.is_active  t_od_use_cnt.date_8 
  7. 2  1.4  10405  50  1  20190103 
  8. 1  1.1  10415  30  1  20190103 
  9. 2  1.3  10425  15  1  20190103 
  10. 1  1.3  10435  3  0  20190103 
  11. 1  1.4  10445  43  1  20190103 
  12. Time taken: 0.977 seconds, Fetched: 5 row(s) 

2、取出表t_od_use_cnt中滿足以下條件的5條記錄:

·日期大于等于20190102;

·user_id中含有45。

語(yǔ)句如下:

  1. SELECT * 
  2. FROM app.t_od_use_cnt 
  3. WHERE date_8 > 20190102 
  4.       AND user_id RLIKE '45' limit 5; 

還可以把RLIKE替換為REGEXP:

  1. SELECT * 
  2. FROM app.t_od_use_cnt 
  3. WHERE date_8 > 20190102 
  4.       AND user_id REGEXP '45' limit 5; 

運(yùn)行結(jié)果如下:

  1. hive (app)> SELECT * 
  2.           > FROM app.t_od_use_cnt 
  3.           > WHERE date_8 > 20190102 
  4.           >       AND user_id RLIKE '45' limit 5; 
  5. OK 
  6. t_od_use_cnt.platform  t_od_use_cnt.app_version  t_od_use_cnt.user_id  t_od_use_cnt.use_cnt  t_od_use_cnt.is_active  t_od_use_cnt.date_8 
  7. 1  1.4  10445  43  1  20190103 
  8. 2  1.5  10450  6  1  20190103 
  9. 2  1.5  10451  38  1  20190103 
  10. 1  1.4  10452  44  1  20190103 
  11. 1  1.5  10453  37  1  20190103 
  12. Time taken: 0.13 seconds, Fetched: 5 row(s) 
  13.   
  14.   
  15.   
  16. hive (app)> SELECT * 
  17.           > FROM app.t_od_use_cnt 
  18.           > WHERE date_8 > 20190102 
  19.           >       AND user_id REGEXP '45' limit 5; 
  20. OK 
  21. t_od_use_cnt.platform  t_od_use_cnt.app_version  t_od_use_cnt.user_id  t_od_use_cnt.use_cnt  t_od_use_cnt.is_active  t_od_use_cnt.date_8 
  22. 1  1.4  10445  43  1  20190103 
  23. 2  1.5  10450  6  1  20190103 
  24. 2  1.5  10451  38  1  20190103 
  25. 1  1.4  10452  44  1  20190103 
  26. 1  1.5  10453  37  1  20190103 
  27. Time taken: 0.352 seconds, Fetched: 5 row(s) 

 

RLIKE、REGEXP主要用于正則匹配,具體的正則表達(dá)式匹配規(guī)則我們后面的文章來(lái)具體說(shuō)明。

 

責(zé)任編輯:武曉燕 來(lái)源: 巡山貓說(shuō)數(shù)據(jù)
相關(guān)推薦

2021-04-30 08:01:36

SQLHiveSelect

2021-04-18 18:13:42

SQLHive表格

2010-09-08 15:51:53

SQL語(yǔ)句where

2024-10-15 16:53:07

2024-10-05 00:00:10

SQL語(yǔ)句指定連接條

2017-05-16 11:20:51

SQL語(yǔ)句解析

2011-04-02 14:06:46

SQL Server MERGE

2021-07-28 07:22:40

SQL順序Hive

2023-03-29 09:22:03

SQLWhere語(yǔ)句

2010-04-20 15:22:34

Oracle SQL

2019-11-06 09:30:35

SQL查詢語(yǔ)句數(shù)據(jù)庫(kù)

2009-11-06 17:13:24

Oracle SQL語(yǔ)

2010-09-26 09:50:36

SQL Where子句

2010-09-17 16:53:14

SQL中CREATE

2010-11-12 13:08:36

動(dòng)態(tài)sql語(yǔ)句

2010-09-07 11:53:00

SQL語(yǔ)句

2010-09-17 09:35:51

SQL中if語(yǔ)句

2010-09-26 14:46:19

SQL WHERE子句

2009-01-14 09:28:12

OracleSQL10g

2010-09-07 11:24:25

SQL語(yǔ)句
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 麻豆精品一区二区三区在线观看 | 在线播放一区二区三区 | 在线观看免费高清av | 国产精品欧美一区二区三区不卡 | 香蕉久久久 | 国产福利91精品一区二区三区 | 免费观看av| 在线看免费的a | 一区中文字幕 | 日韩成人免费视频 | 午夜一区 | 日韩精品视频一区二区三区 | 亚洲一区免费视频 | 一级黄色片网址 | 毛片免费观看 | 99热精品6 | 新超碰97 | 一级免费视频 | 欧美激情一区二区三级高清视频 | 91精品国产综合久久福利软件 | 一级黄色毛片 | 日韩中文字幕一区 | 国产成人精品综合 | 精品一区二区视频 | 视频1区2区| 能看的av| 精品视频一区二区三区在线观看 | 涩涩视频网站在线观看 | 久久亚洲国产 | 国产片侵犯亲女视频播放 | 久久免费香蕉视频 | 婷婷在线免费 | 亚洲色图综合 | 精品99久久久久久 | 精品久久久久久久 | 日本一区二区高清不卡 | 久久久亚洲精品视频 | 亚洲97 | 2019天天操| 91成人小视频 | 国产精品永久 |