使用SQL將多行記錄合并成一行實例代碼
前言
我們在數(shù)據(jù)開發(fā)的過程中,經(jīng)常會遇到這樣的需求,就是將多行合并為一行,并且用特定字符隔開。
1、數(shù)據(jù)處理前

2,結(jié)果數(shù)據(jù)展示

3,hive處理方式
在hive里面,用concat_ws函數(shù)處理
格式: concat_ws(‘分隔符’,collect_set/collect_list(字段))
參數(shù)釋義:
- concat_ws:多行合并一行函數(shù)
- collect_set:合成數(shù)組,數(shù)據(jù)已去重
- collect_list:合成數(shù)組, 數(shù)據(jù)未去重
SQL腳本:
select school,concat_ws(',',collect_set(name)) from student
group by school;
4,MySQL處理方式
GROUP_CONCAT(字段 分隔符)
注意:MySQL在GROUP_CONCAT函數(shù)中,去重需要使用distinct 關(guān)鍵字,如果需要先排序再合并,也可以使用order by 關(guān)鍵字。
select school,GROUP_CONCAT(name,',') from student group by school;
補充:還有幾種擴展
①可以給類別去重
SELECT group_id,GROUP_CONCAT(DISTINCT category) FROM `sqltest` GROUP BY group_id

②給類別排序
SELECT group_id,GROUP_CONCAT(category ORDER BY category DESC) FROM `sqltest` GROUP BY group_id

③給類別更改分隔符
SELECT group_id,GROUP_CONCAT(category SEPARATOR '_') FROM `sqltest` GROUP BY group_id

總結(jié)
到此這篇關(guān)于使用SQL將多行記錄合并成一行的文章就介紹到這了,更多相關(guān)SQL多行記錄合并一行內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MySQL錯誤:ERROR?1049?(42000):?Unknown?database?‘nonexiste
這篇文章主要給大家介紹了關(guān)于MySQL錯誤:ERROR?1049?(42000):?Unknown?database?‘nonexistentdb‘的簡單解決辦法,這個錯誤通常是由于連接的數(shù)據(jù)庫不存在導致的,文中通過代碼介紹的非常詳細,需要的朋友可以參考下2024-07-07
windows下MySQL 5.7.3.0安裝配置圖解教程(安裝版)
這篇文章主要介紹了windows下MySQL 5.7.3.0安裝配置圖解教程(安裝版),需要的朋友可以參考下2016-04-04
DB為何大量出現(xiàn)select @@session.tx_read_only 詳解
這篇文章主要給大家介紹了關(guān)于DB為何大量出現(xiàn)select @@session.tx_read_only 的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧。2018-04-04

