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

HIVE SQL實(shí)現(xiàn)分組字符串拼接concat

這篇具有很好參考價(jià)值的文章主要介紹了HIVE SQL實(shí)現(xiàn)分組字符串拼接concat。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

在Mysql中可以通過group_concat()函數(shù)實(shí)現(xiàn)分組字符串拼接,在HIVE SQL中可以使用concat_ws()+collect_set()/collect_list()函數(shù)實(shí)現(xiàn)相同的效果。
實(shí)例:

a b c
2014 B 9
2015 A 8
2014 A 10
2015 B 7
2014 B 6

1.concat_ws+collect_list 非去重拼接

select a 
	,concat_ws('-',collect_list(b))  as col_b
	,concat_ws('-',collect_list(cast(c as string)))  as col_c
from tb_name
group by a
;

查詢結(jié)果:

a col_b col_c
2014 B-A-B 9-10-6
2015 A-B 8-7

2.concat_ws+collect_set 去重拼接

select a 
	,concat_ws('-',collect_set(b))  as col_b
	,concat_ws('-',collect_set(cast(c as string)))  as col_c

from tb_name
group by a
;

查詢結(jié)果:

a col_b col_c
2014 B-A 9-10-6
2015 A-B 8-7

3.如果在分組拼接的時(shí)候需要保持拼接結(jié)果為有序排序,可以通過以下兩種方式
1)先排序再拼接

select a 
	,concat_ws('-',collect_set(b))  as col_b
	,concat_ws('-',collect_set(cast(c as string)))  as col_c

from 
(
select a 
	,b
	,c
	,row_number() over (partition by a order by b asc) as rn
from tb_name
) t
group by a
;

查詢結(jié)果:

a col_b col_c
2014 A-B 10-6-9
2015 A-B 8-7
select a 
	,concat_ws('-',collect_list(b))  as col_b
	,concat_ws('-',collect_list(cast(c as string)))  as col_c

from 
(
select a 
	,b
	,c
	,row_number() over (partition by a order by b asc) as rn
from tb_name
) t
group by a
;

查詢結(jié)果:(col_b與col_c 的位置對(duì)應(yīng)且col_b中的字符有序)

a col_b col_c
2014 A-B-B 10-6-9
2015 A-B 8-7

2)sort_array()函數(shù)升序排列文章來源地址http://www.zghlxwxcb.cn/news/detail-657476.html

select a 
	,concat_ws('-',sort_array(collect_list(b)))  as col_b

from tb_name
group by a
;
a col_b
2014 A-B-B
2015 A-B

到了這里,關(guān)于HIVE SQL實(shí)現(xiàn)分組字符串拼接concat的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【SQL相關(guān)】Hive行列字符串的合并與拆分

    目錄 一、行方向 1. 行方向的合并 1.1 concat 函數(shù) 1.2 concat_ws 函數(shù) 2. 行方向的拆分 二、列方向 1. 列方向的合并 1.1 group_concat 函數(shù) 1.2 collect_list 函數(shù) 1.3 collect_set 函數(shù) 2. 列方向的拆分 2.1 explode 函數(shù) 2.2 lateral view 1. 行方向的合并 將同一行某幾列的數(shù)據(jù)以分隔符分隔,合并到同一列

    2024年04月14日
    瀏覽(54)
  • mysql中的實(shí)現(xiàn)字段或字符串拼接的三種方式

    mysql中的實(shí)現(xiàn)字段或字符串拼接的三種方式

    concat函數(shù)是將多個(gè)字段或字符串拼接為一個(gè)字符串;但是字符串之間沒有任何分隔。 concat函數(shù)官方介紹 執(zhí)行結(jié)果如下: 執(zhí)行結(jié)果如下: 如果拼接的字段中有一個(gè)為null,則結(jié)果為null。 執(zhí)行結(jié)果如下: concat_ws函數(shù)將多個(gè)字段或字符串拼接為一個(gè)字符串,且字符串直接可以指定

    2024年02月22日
    瀏覽(27)
  • Hive SQL判斷一個(gè)字符串中是否包含字串的N種方式及其效率

    這是個(gè)常見需求,某個(gè)表tab中,需要判斷某個(gè)string類型的字段中,哪些數(shù)據(jù)含有一個(gè)子串。以下給出6種方案,并給出效率對(duì)比。 可以使用regexp_extract(subject, pattern, index)函數(shù)來提取字符串中匹配指定正則表達(dá)式的字串。要判斷一個(gè)字符串中是否包含字串\\\"ABCD;\\\",可以使用如下代

    2024年01月24日
    瀏覽(28)
  • spark SQL 怎么將一個(gè)時(shí)間戳字符串轉(zhuǎn)換成hive支持的時(shí)間日期類型?

    在 Spark SQL 中,可以使用 to_timestamp 函數(shù)將一個(gè)時(shí)間戳字符串轉(zhuǎn)換成 Hive 支持的時(shí)間日期類型。這個(gè)函數(shù)的語(yǔ)法如下: 其中,timestampStr 表示要轉(zhuǎn)換的時(shí)間戳字符串,format 表示時(shí)間戳字符串的格式,格式必須與時(shí)間戳字符串的實(shí)際格式相匹配。如果不指定格式,Spark 會(huì)使用默認(rèn)

    2024年02月11日
    瀏覽(51)
  • 297.【華為OD機(jī)試】拼接url(字符串處理—Java&Python&C++&JS實(shí)現(xiàn))

    ??點(diǎn)擊這里可直接跳轉(zhuǎn)到本專欄,可查閱頂置最新的華為OD機(jī)試寶典~ 本專欄所有題目均包含優(yōu)質(zhì)解題思路,高質(zhì)量解題代碼(JavaPythonC++JS分別實(shí)現(xiàn)),詳細(xì)代碼講解,助你深入學(xué)習(xí),深度掌握!

    2024年04月12日
    瀏覽(28)
  • mysql 拼接字符串,截取字符串 常用方式

    1,拼接字符串常用:CONCAT(‘需要拼接的字符串’,列名) CONCAT(\\\'+\\\',b.Telephone)查詢出號(hào)碼,前邊加上+號(hào) 2,分割字符串 substring_index(b.Telephone,\\\'+\\\',1) 用從左往右的第一個(gè)+分割電話號(hào)碼,獲取分割后的從左往右的第一個(gè)字符串 比如 86+133333333 執(zhí)行完后 為 86 substring_index(b.Telephone,\\\'+\\\',

    2024年02月14日
    瀏覽(31)
  • Python_字符串(字符串拼接:join() 與 +拼接符兩種方法效率對(duì)比)

    Python_字符串(字符串拼接:join() 與 +拼接符兩種方法效率對(duì)比)

    運(yùn)算結(jié)果如下圖所示: 顯然,在循環(huán)1000000次的前提下,字符的join()運(yùn)算效率遠(yuǎn)遠(yuǎn)高于使用+拼接符的運(yùn)算。 其根本邏輯在于: 對(duì)于簡(jiǎn)單的+運(yùn)算符,字符串每次相加都會(huì)創(chuàng)建一個(gè)新的對(duì)象。較為費(fèi)時(shí)。 而對(duì)于join(),其用于列表內(nèi)字符串的相加,列表中字符串的相加并不會(huì)創(chuàng)建

    2023年04月24日
    瀏覽(22)
  • Hive 解析 JSON 字符串?dāng)?shù)據(jù)的實(shí)現(xiàn)方式

    Hive 解析 JSON 字符串?dāng)?shù)據(jù)的實(shí)現(xiàn)方式

    在 Hive 中提供了直接解析 JSON 字符串?dāng)?shù)據(jù)的方法 get_json_object(json_txt, path) ,該方法參數(shù)解析如下: json_txt :顧名思義,就是 JSON 字符串; path :指的是匹配 JSON 字符串的格式,通過固定的語(yǔ)法獲取 JSON 字符串中的內(nèi)容。 常用的 path 參數(shù)匹配符號(hào)有四個(gè),分別是: $ :表示獲

    2024年02月05日
    瀏覽(22)
  • shell 拼接字符串,出現(xiàn)后面的字符串覆蓋前面的字符串問題

    shell 拼接字符串,出現(xiàn)后面的字符串覆蓋前面的字符串問題

    shell 拼接字符串語(yǔ)法很簡(jiǎn)單兩個(gè)參數(shù)并排前后寫上接口,如下 str1=www str2=bbb s t r 1 str1 s t r 1 str2 的結(jié)果未 wwwbbb 有時(shí)會(huì)出現(xiàn)如下問題: 在拼接字符串的時(shí)候,后面的字符串將前面的字符串覆蓋了。 shell的內(nèi)容如下: #!/bin/bash date_str=“ date +%Y%m%d ” echo $date_str python_file_name=\\\" 1

    2024年02月09日
    瀏覽(26)
  • JS中字符串切割為數(shù)組/數(shù)組拼接為字符串

    (1)語(yǔ)法格式: 其中所選分隔符使用雙引號(hào)(“”)或者單引號(hào)(‘’)括起來; 所生成的數(shù)組會(huì)存放于前面定義的數(shù)組變量中。 (2)樣例: JS代碼: 運(yùn)行結(jié)果: (3)其他用法: ①當(dāng)所選分隔符為空時(shí),返回的數(shù)組即將每個(gè)字符分割出來: JS代碼: 運(yùn)行結(jié)果: ②分隔

    2024年02月12日
    瀏覽(32)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包