【MySQL】MySQL如何合併多行資料,行轉列,group_concat 多行合併
一個聚合函式,在group
語句中使用,可以將多行的字串按分組整合成一個字串,注意:使用 GROUP_CONCAT()
函式必須對源資料進行分組,否則所有資料會被合併成一行
例子:
SELECT id,group_concat(dept SEPARATOR ',') FROM table_a GROUP BY dept;
SELECT GROUP_CONCAT(CONCAT('\'',ENIN_NAME,'\'')) FROM sys_c_en_entityinfo;
SELECT t.names AS '姓名',GROUP_CONCAT(t.course_name ORDER BY t.course_name SEPARATOR ',') AS '課程' FROM course t GROUP BY t.names
使用案例:
使用者每月資料都是單行的,一年的資料為12條,需要將12條資料存為[0,0,0,0,0...]
這樣的結構。
SELECT CONCAT('[', GROUP_CONCAT(s.df2 SEPARATOR ','), ']') df2
FROM (SELECT b.year_m, IF(b.year_m > DATE_FORMAT(NOW(),'%Y%m'),0,sum(IF(a.df2 IS NULL, 0, a.df2))over(ORDER BY b.year_m)) df2
FROM (SELECT date_format(s.slsj, '%Y%m') slsj, count(*) df2
FROM yhhx_dfgmg s
WHERE s.yhbh = a.yhbh
AND s.ywlb != '投訴'
AND substr(s.slsj, 1, 4) = date_format(now(), '%Y')
GROUP BY date_format(s.slsj, '%Y%m')) a
RIGHT JOIN demo_ny b
ON a.slsj = b.year_m) s
結果:
[1,2,3,4,5,6,7,8,9,0,11,12]
注意:GROUP_CONCAT
函式預設的最大可連線字串的長度是1024
,如果連線的字串長度超過1024
的話會被截斷,不過我們可以通過設定group_concat_max_len
的值來修改GROUP_CONCAT
的最大長度。
SET SESSION group_concat_max_len= 99999;
相關文章
- Excel 快速合併多行資料為一行Excel
- orcale 中查詢多行 後合併到一行顯示
- mysql 索引合併MySql索引
- mysql資料庫多表同結構合併資料MySql資料庫
- pandas 兩列資料合併
- SQLServer中多行中的一列根據條件合併為一行中的一列SQLServer
- [Hive]用concat_w實現將多行記錄合併成一行Hive
- sql、oracle資料多行轉單行SQLOracle
- 利用shell中awk和xargs以及sed將多行多列文字中某一列合併成一行
- MySQL 合併查詢join 查詢出的不同列合併到一個表中MySql
- MySQL 合併查詢union 查詢出的行合併到一個表中MySql
- Excel 如何批次將矩陣(多行多列)資料轉為單行或單列資料Excel矩陣
- 合併陣列陣列
- MySQL-17-mysql alter 語句如何實現?如何合併為一個MySql
- el-table 合併相同資料的列
- GridView列相同合併View
- 使用python進行合併資料集Python
- MySQL 配置索引頁的合併閾值MySql索引
- 影片合併分割軟體如何合併影片
- mysql~GROUP_CONCAT實現關係表的行轉列MySql
- Hbase-原理-region合併和hfile的合併(大合併、小合併)
- el-table合併相同資料的行
- MySQL 優化之 index_merge (索引合併)MySql優化Index索引
- DBeaver如何刪除一行或多行資料
- JS--陣列物件合併JS陣列物件
- 藍橋杯-合併數列
- Hive列合併與元素蒐集Hive
- 合併兩個有序陣列陣列
- Java Stream 流如何進行合併操作Java
- 資料檔案合併與拆分
- PHP 圖片的合併,微信小程式碼合併,文字合併PHP微信小程式
- Mysql - 行轉列、列轉行MySql
- MySQL中為什麼要使用索引合併(Index Merge)?MySql索引Index
- 基於檔案的表合併及行轉列實現參考
- poi報表匯出 複雜匯出 指定合併列和對比重複列合併行動態匯出
- Oracle 多行分多列Oracle
- 88、合併兩個有序陣列陣列
- js合併兩個陣列物件JS陣列物件