国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Hive:聚合函數(shù)、GROUP BY、ORDER BY、LIMIT、執(zhí)行順序和JOIN、函數(shù)

這篇具有很好參考價值的文章主要介紹了Hive:聚合函數(shù)、GROUP BY、ORDER BY、LIMIT、執(zhí)行順序和JOIN、函數(shù)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1.聚合函數(shù)
  • 常見的聚合函數(shù):Count、Sum、Max、Min和Avg
  • 特點:不管原始數(shù)據(jù)多少條,聚合之后只有一條
  • Count(column)返回某列的行數(shù),不包括NULL值

hive聚合,hive,hadoop,大數(shù)據(jù)

2.GROUP BYhive聚合,hive,hadoop,大數(shù)據(jù)hive聚合,hive,hadoop,大數(shù)據(jù)
  • select中的字段要么是GROUP BY字段,要么是被聚合函數(shù)應用的字段
2.HAVING
  • WHERE中無法出現(xiàn)聚合函數(shù),所以有了HAVING
  • WHERE是分組前過濾,HAVING是分組后過濾

為什么WHERE中不能使用聚合函數(shù)?

  • 因為使用WHERE的時候,只能從表格字段中直接查找然后過濾,如果用到計算函數(shù),不是表格現(xiàn)有的直接可以查到的,就不可以作為過濾條件,對于表格現(xiàn)有的 length() 等函數(shù)還是可以的
  • 而且因為WHERE的執(zhí)行順序在GROUP BY之前,而聚合函數(shù)只有在GROUP BY之后才能進行,因此WHERE中不能有聚合函數(shù)

hive聚合,hive,hadoop,大數(shù)據(jù)
使用having時一定要注意和select中的某個聚合函數(shù)一樣,且可以使用其別名。雖然having在select之前,但是就是可以,這樣SQL的性能更好,不用執(zhí)行兩遍聚合函數(shù)了

3.ORDER BY
  • 默認按照升序(ASC),降序使用DESC
select * from t order by name desc, age asc; --先根據(jù)name降序,再根據(jù)age升序
4.LIMIT
  • 用于限制SELECT語句返回的行數(shù)
  • 接收一個或者兩個參數(shù),都是非負整數(shù)
  • 第一個參數(shù)指定要返回的第一行的偏移量,第二個參數(shù)指定要返回的最大行數(shù)。單個參數(shù)時,偏移量默認為0。
5.執(zhí)行順序

hive聚合,hive,hadoop,大數(shù)據(jù)

6.Join

hive聚合,hive,hadoop,大數(shù)據(jù)
內(nèi)連接
hive聚合,hive,hadoop,大數(shù)據(jù)
左連接
hive聚合,hive,hadoop,大數(shù)據(jù)

7.函數(shù)分類(UDF,UDAF,UDTF)
show functions; //查看當下可用的所有函數(shù)
describe function extended funcname; //查看funcname的使用

hive聚合,hive,hadoop,大數(shù)據(jù)
hive聚合,hive,hadoop,大數(shù)據(jù)文章來源地址http://www.zghlxwxcb.cn/news/detail-727253.html

8.常用內(nèi)置函數(shù)
------------String Functions 字符串函數(shù)------------
select length("itcast");
select reverse("itcast");

select concat("angela","baby");
--帶分隔符字符串連接函數(shù):concat_ws(separator, [string | array(string)]+)
select concat_ws('.', 'www', array('itcast', 'cn'));

--字符串截取函數(shù):substr(str, pos[, len]) 或者  substring(str, pos[, len])
select substr("angelababy",-2); --pos是從1開始的索引,如果為負數(shù)則倒著數(shù)
select substr("angelababy",2,2);
--分割字符串函數(shù): split(str, regex)
--split針對字符串數(shù)據(jù)進行切割  返回是數(shù)組array  可以通過數(shù)組的下標取內(nèi)部的元素 注意下標從0開始的
select split('apache hive', ' ');
select split('apache hive', ' ')[0];
select split('apache hive', ' ')[1];


----------- Date Functions 日期函數(shù) -----------------
--獲取當前日期: current_date
select current_date();
--獲取當前UNIX時間戳函數(shù): unix_timestamp
select unix_timestamp();
--日期轉(zhuǎn)UNIX時間戳函數(shù): unix_timestamp
select unix_timestamp("2011-12-07 13:01:03");
--指定格式日期轉(zhuǎn)UNIX時間戳函數(shù): unix_timestamp
select unix_timestamp('20111207 13:01:03','yyyyMMdd HH:mm:ss');
--UNIX時間戳轉(zhuǎn)日期函數(shù): from_unixtime
select from_unixtime(1618238391);
select from_unixtime(0, 'yyyy-MM-dd HH:mm:ss');

--日期比較函數(shù): datediff  日期格式要求'yyyy-MM-dd HH:mm:ss' or 'yyyy-MM-dd'
select datediff('2012-12-08','2012-05-09');
--日期增加函數(shù): date_add
select date_add('2012-02-28',10);
--日期減少函數(shù): date_sub
select date_sub('2012-01-1',10);


----Mathematical Functions 數(shù)學函數(shù)-------------
--取整函數(shù): round  返回double類型的整數(shù)值部分 (遵循四舍五入)
select round(3.1415926);
--指定精度取整函數(shù): round(double a, int d) 返回指定精度d的double類型
select round(3.1415926,4);
--取隨機數(shù)函數(shù): rand 每次執(zhí)行都不一樣 返回一個0到1范圍內(nèi)的隨機數(shù)
select rand();
--指定種子取隨機數(shù)函數(shù): rand(int seed) 得到一個穩(wěn)定的隨機數(shù)序列
select rand(3);


-----Conditional Functions 條件函數(shù)------------------
--使用之前課程創(chuàng)建好的student表數(shù)據(jù)
select * from student limit 3;

--if條件判斷: if(boolean testCondition, T valueTrue, T valueFalseOrNull)
select if(1=2,100,200);
select if(sex ='男','M','W') from student limit 3;

--空值轉(zhuǎn)換函數(shù): nvl(T value, T default_value)
select nvl("allen","itcast");
select nvl(null,"itcast");

--條件轉(zhuǎn)換函數(shù): CASE a WHEN b THEN c [WHEN d THEN e]* [ELSE f] END
select case 100 when 50 then 'tom' when 100 then 'mary' else 'tim' end;
select case sex when '男' then 'male' else 'female' end from student limit 3;

到了這里,關于Hive:聚合函數(shù)、GROUP BY、ORDER BY、LIMIT、執(zhí)行順序和JOIN、函數(shù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • mysql GROUP BY 怎么 order by 排序

    在 MySQL 中使用 GROUP BY 子句時,如果需要對結(jié)果進行排序,可以使用 ORDER BY 子句來對分組后的結(jié)果進行排序。 ORDER BY 子句應該放在 GROUP BY 子句之后,使用逗號來分隔需要排序的列,并在排序列后指定排序順序。例如: 在這個例子中,SELECT 語句選擇了表 table1 中的列 column1 和

    2024年02月16日
    瀏覽(17)
  • SQLite學習(六)SQLite的GLOB、LIMIT、ORDER、GROUP UP子句語法和應用

    在上一篇《SQLite學習(五)SQLite的WHERE、AND、OR、LIKE子句語法和應用》 中,講解了 SQLite中 WHERE、AND、OR、LIKE 子句的語法,在本篇博客中,將繼續(xù)講解 SQLite 子句的基本語法。 同學們將學習到: SQLite GLOB 子句語法 SQLite LIMIT 子句語法 SQLite ORDER 子句語法 SQLite GROUP UP 子句語法

    2024年02月06日
    瀏覽(26)
  • 【ABAP】OPEN SQL(七)「GROUP BY | HAVING | ORDER BY」

    【ABAP】OPEN SQL(七)「GROUP BY | HAVING | ORDER BY」

    ?? 作者簡介: THUNDER王,一名熱愛財稅和SAP ABAP編程以及熱愛分享的博主。目前于江西師范大學本科在讀,同時任漢碩云(廣東)科技有限公司ABAP開發(fā)顧問。在學習工作中,我通常使用偏后端的開發(fā)語言ABAP,SQL進行任務的完成,對SAP企業(yè)管理系統(tǒng),SAP ABAP開發(fā)和數(shù)據(jù)庫具有較

    2024年02月08日
    瀏覽(26)
  • 【mysql學習篇】Order by與Group by優(yōu)化以及排序算法詳解

    【mysql學習篇】Order by與Group by優(yōu)化以及排序算法詳解

    Case1: 分析: 利用 最左前綴 法則:中間字段不能斷,因此查詢用到了name索引,從key_len=74也能看出,age索引列用在排序過程中,因為Extra字段里沒有using filesort 注意: order by age 雖然用到了索引,但是不會在key_len列體現(xiàn) Case 2: 分析: 從explain的執(zhí)行結(jié)果來看:key_len=74,查詢

    2024年02月15日
    瀏覽(25)
  • Elasticsearch增刪改查、count、sum、group by、order by、like

    1、查找所有索引 2、查詢 3、count 4、查詢SQL:

    2024年02月16日
    瀏覽(18)
  • 如何使用SQL系列 之 如何在SQL中使用GROUP BY和ORDER BY

    結(jié)構(gòu)化查詢語言(SQL)數(shù)據(jù)庫可以跨多個表存儲和管理大量數(shù)據(jù)。對于大型數(shù)據(jù)集,理解如何排序數(shù)據(jù)是很重要的,特別是對于分析結(jié)果集或為報告或外部通信組織數(shù)據(jù)。 SQL中有兩個常用的用于數(shù)據(jù)排序的語句: GROUP BY 和 ORDER BY 。 GROUP BY 語句根據(jù)查詢中指定的列對數(shù)據(jù)進行分組

    2024年02月09日
    瀏覽(21)
  • 玩轉(zhuǎn)Mysql系列 - 第8篇:詳解排序和分頁(order by & limit),及存在的坑

    這是Mysql系列第7篇。 環(huán)境:mysql5.7.25,cmd命令中進行演示。 代碼中被[]包含的表示可選,|符號分開的表示可選其一。 本章內(nèi)容 詳解排序查詢 詳解limit limit存在的坑 分頁查詢中的坑 排序查詢(order by) 電商中:我們想查看今天所有成交的訂單,按照交易額從高到低排序,此

    2024年02月11日
    瀏覽(20)
  • spark 的group by ,join數(shù)據(jù)傾斜調(diào)優(yōu)

    spark任務中最常見的耗時原因就是數(shù)據(jù)分布不均勻,從而導致有些task運行時間很長,長尾效應導致的整個job運行耗時很長 首先我們要定位數(shù)據(jù)傾斜,我們可以通過在spark ui界面中查看某個stage下的task的耗時,如果發(fā)現(xiàn)某些task耗時很長,對應要處理的數(shù)據(jù)很多,證明有數(shù)據(jù)傾斜

    2024年02月21日
    瀏覽(24)
  • hive order by length() 報錯

    hql 如下 select length(tag) from table1 order by length(tag) limit 20; 報錯FAILED: SemanticException [Error 10004]: Line…Invalid table alias or column reference ‘tag’: (possible column names are: _c0) FAILED: SemanticException [Error 10004]: Line…Invalid table alias or column reference ‘tag’: (possible column names are: _c0) 修改 用別名替

    2024年01月21日
    瀏覽(16)
  • Hive 中 sort by 和 order by 的區(qū)別

    order by 會對輸入做 全局排序 ,因此只有1個reducer(多個reducer無法保證全局有序),會導致當輸入規(guī)模較大時,需要較長的計算時間。 sort by 不是全局排序,其在數(shù)據(jù)進入 reducer 前完成排序。 因此,如果用 sort by 進行排序,并且設置 mapred.reduce.tasks1 , 則 sort by 只保證每個

    2024年02月16日
    瀏覽(18)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包