HIVE SQL實現分組字符串拼接concat

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

abc
2014B9
2015A8
2014A10
2015B7
2014B6

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
;

查詢結果:

acol_bcol_c
2014B-A-B9-10-6
2015A-B8-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_cfrom tb_name
group by a
;

查詢結果:

acol_bcol_c
2014B-A9-10-6
2015A-B8-7

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

select a ,concat_ws('-',collect_set(b))  as col_b,concat_ws('-',collect_set(cast(c as string)))  as col_cfrom 
(
select a ,b,c,row_number() over (partition by a order by b asc) as rn
from tb_name
) t
group by a
;

查詢結果:

acol_bcol_c
2014A-B10-6-9
2015A-B8-7
select a ,concat_ws('-',collect_list(b))  as col_b,concat_ws('-',collect_list(cast(c as string)))  as col_cfrom 
(
select a ,b,c,row_number() over (partition by a order by b asc) as rn
from tb_name
) t
group by a
;

查詢結果:(col_b與col_c 的位置對應且col_b中的字符有序)

acol_bcol_c
2014A-B-B10-6-9
2015A-B8-7

2)sort_array()函數升序排列

select a ,concat_ws('-',sort_array(collect_list(b)))  as col_bfrom tb_name
group by a
;
acol_b
2014A-B-B
2015A-B

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/43019.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/43019.shtml
英文地址,請注明出處:http://en.pswp.cn/news/43019.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Linux系統中基于NGINX的代理緩存配置指南

作為一名專業的爬蟲程序員,你一定知道代理緩存在加速網站響應速度方面的重要性。而使用NGINX作為代理緩存服務器,能夠極大地提高性能和效率。本文將為你分享Linux系統中基于NGINX的代理緩存配置指南,提供實用的解決方案,助你解決在…

C語言刷題訓練DAY.8

1.計算單位階躍函數 解題思路&#xff1a; 這個非常簡單&#xff0c;只需要if else語句即可完成 解題代碼&#xff1a; #include <stdio.h>int main() {int t 0;while(scanf("%d",&t)!EOF){if (t > 0)printf("1\n");else if (t < 0)pr…

大模型基礎02:GPT家族與提示學習

大模型基礎&#xff1a;GPT 家族與提示學習 從 GPT-1 到 GPT-3.5 GPT(Generative Pre-trained Transformer)是 Google 于2018年提出的一種基于 Transformer 的預訓練語言模型。它標志著自然語言處理領域從 RNN 時代進入 Transformer 時代。GPT 的發展歷史和技術特點如下: GP…

【校招VIP】java語言類和對象之map、set集合

考點介紹&#xff1a; map、set集合相關內容是校招面試的高頻考點之一。 map和set是一種專門用來進行搜索的容器或者數據結構&#xff0c;其搜索效率與其具體的實例化子類有關系。 『java語言類和對象之map、set集合』相關題目及解析內容可點擊文章末尾鏈接查看&#xff01; …

深入了解Maven(一)

目錄 一.Maven介紹與功能 二.依賴管理 1.依賴的配置 2.依賴的傳遞性 3.排除依賴 4.依賴的作用范圍 5.依賴的生命周期 一.Maven介紹與功能 maven是一個項目管理和構建工具&#xff0c;是基于對象模型POM實現。 Maven的作用&#xff1a; 便捷的依賴管理&#xff1a;使用…

springboot 使用zookeeper實現分布式隊列

一.添加ZooKeeper依賴&#xff1a;在pom.xml文件中添加ZooKeeper客戶端的依賴項。例如&#xff0c;可以使用Apache Curator作為ZooKeeper客戶端庫&#xff1a; <dependency><groupId>org.apache.curator</groupId><artifactId>curator-framework</…

【java安全】Log4j反序列化漏洞

文章目錄 【java安全】Log4j反序列化漏洞關于Apache Log4j漏洞成因CVE-2017-5645漏洞版本復現環境漏洞復現漏洞分析 CVE-2019-17571漏洞版本漏洞復現漏洞分析 參考 【java安全】Log4j反序列化漏洞 關于Apache Log4j Log4j是Apache的開源項目&#xff0c;可以實現對System.out…

英語——構詞法

按照語言一定的規律創造新詞的方法就叫作構詞法。英語中常見的構詞法包括六種:合成法、派生法、轉化法、混合法、截短法和首尾字母結合法。其中后三種將在第四節“縮寫和簡寫”中進行講解。 第一節 合成法 英語構詞法中把兩個單詞連在一起合成一個新詞,前一個詞修飾或限定后…

前端性能優化——包體積壓縮插件,打包速度提升插件,提升瀏覽器響應的速率模式

前端代碼優化 –其他的優化可以具體在網上搜索 壓縮項目打包后的體積大小、提升打包速度&#xff0c;是前端性能優化中非常重要的環節&#xff0c;結合工作中的實踐總結&#xff0c;梳理出一些 常規且有效 的性能優化建議 ue 項目可以通過添加–report命令&#xff1a; "…

innodb索引與算法

B樹主鍵插入 B樹在innodb的插入有三種模式page_last_insert, page_dirction, page_N_direction 而在bustub里面的B樹就是page_N_direction,如果是自增主鍵的話&#xff0c;就是上面這樣的插入法 FIC優化 (DDL) 選擇性統計 覆蓋索引 MMR ICP優化 自適應hash 全文索引 MySQL…

Rust之編寫自動化測試

1、測試函數的構成&#xff1a; 在最簡單的情形下,Rust中的測試就是一個標注有test屬性的函數。屬性 (attribute)是一種用于修飾Rust代碼的元數據。只需要將#[test]添加到關鍵字fn的上一行便可以將函數轉變為測試函數。當測試編寫完成后,我們可以使用cargo test命令來運行測試…

Flink-----Standalone會話模式作業提交流程

1.Flink的Slot特點: 均分隔離內存,不隔離CPU可以共享:同一個job中,不同算子的子任務才可以共享同一個slot,同時在運行的前提是,屬于同一個slot共享組,默認都是“default”2.Slot的數量 與 并行度 的關系 slot 是一種靜態的概念,表示最大的并發上線并行度是個動態的概念…

List和ObservableCollection和ListBinding在MVVM模式下的對比

List和ObservableCollection和ListBinding在MVVM模式下的對比 List 當對List進行增刪操作后&#xff0c;并不會對View進行通知。 //Employee public class Employee : INotifyPropertyChanged {public event PropertyChangedEventHandler? PropertyChanged;public string N…

Vue-13.創建完整的Vue項目(vue+vue-cli+js)

前言 之前寫了命令創建Vue項目&#xff0c;但是事實上我們可以直接用編譯器直接創建項目&#xff0c;這里我使用webstorm&#xff08;因為我是前后端兼修的所以我習慣使用Idea家族的編譯器&#xff09; 只寫前端的推薦用VsCode前后端都寫的推薦用webstorm 新建項目 項目初始…

確保Django項目的穩定運行和持續改進

確保Django項目的穩定運行和持續改進 引言 Django是一個強大的Python Web框架&#xff0c;用于構建高效、可靠的Web應用程序。然而&#xff0c;部署一個Django項目并不意味著工作已經完成。在項目上線之后&#xff0c;確保項目的穩定運行并不斷進行改進是非常重要的。本博客將…

vscode 安裝勾選項解釋

1、通過code 打開“操作添加到windows資源管理器文件上下文菜單 &#xff1a;把這個兩個勾選上&#xff0c;可以對文件使用鼠標右鍵&#xff0c;選擇VSCode 打開。 2、將code注冊為受支持的文件類型的編輯器&#xff1a;不建議勾選&#xff0c;這樣會默認使用VSCode打開支持的相…

《Linux從練氣到飛升》No.15 Linux 環境變量

&#x1f57a;作者&#xff1a; 主頁 我的專欄C語言從0到1探秘C數據結構從0到1探秘Linux菜鳥刷題集 &#x1f618;歡迎關注&#xff1a;&#x1f44d;點贊&#x1f64c;收藏??留言 &#x1f3c7;碼字不易&#xff0c;你的&#x1f44d;點贊&#x1f64c;收藏??關注對我真的…

微信小程序通用字體代碼

下面是一個簡單的微信小程序通用字體代碼示例&#xff1a; // 在app.wxss中設置全局字體樣式 import ./styles/fonts.wxss;// 在fonts.wxss中定義字體樣式 font-face {font-family: CustomFont;src: url(font.ttf) format(truetype); }// 在page.wxss中使用自定義字體樣式 .cus…

SASS 學習筆記 II

SASS 學習筆記 II 上篇筆記&#xff0c;SASS 學習筆記 中包含&#xff1a; 配置 變量 嵌套 這里加一個擴展&#xff0c;嵌套中有一個 & 的用法&#xff0c;使用 & 可以指代當前 block 中的 selector&#xff0c;后面可以追加其他的選擇器。如當前的 scope 是 form&a…

GuLi商城-前端基礎Vue-使用Vue腳手架進行模塊化開發

自己親自實踐&#xff1a; mac安裝webpack webpack 簡介Webpack 是一個非常流行的前端構建工具&#xff0c;它可以將多個模塊&#xff08;包括CSS、JavaScript、圖片等&#xff09;打包成一個或多個靜態資源文件&#xff08;bundle&#xff09;&#xff0c;以便用于部署到生產…