SQL—Group_Concat函数用法详解
创作时间:
作者:
@小白创作中心
SQL—Group_Concat函数用法详解
引用
CSDN
1.
https://blog.csdn.net/weixin_48935611/article/details/144889460
SQL—Group_Concat函数用法详解
GROUP_CONCAT函数是SQL中一个非常实用的聚合函数,主要用于将多行数据合并为一个字符串。其基本语法如下:
GROUP_CONCAT([DISTINCT] expression [ORDER BY expression] [SEPARATOR separator])
- DISTINCT(可选):去除重复的值。指定
DISTINCT,GROUP_CONCAT会在连接值之前去除重复的行。 - expression:需要合并的字段或表达式。可以是表中的列,也可以是计算结果。
- ORDER BY expression(可选):定义合并顺序。可以对结果进行排序(例如按字母顺序排序)。
- SEPARATOR separator(可选):指定连接值之间的分隔符,默认为逗号(
,)。可以自定义为其他字符或字符串(如空格、分号、破折号等)。
Demo01:基本用法
将同一个state下的city合并为一个以逗号分隔的字符串。
state | city |
|---|---|
California | Los Angeles |
California | San Francisco |
California | San Diego |
Texas | Houston |
Texas | Austin |
Texas | Dallas |
Demo02:去重使用(DISTINCT)
避免重复的城市名称,可以使用DISTINCT。
state | city |
|---|---|
California | Los Angeles |
California | Los Angeles |
Texas | Houston |
Texas | Austin |
Texas | Dallas |
SELECT
state,
GROUP_CONCAT(DISTINCT city ORDER BY city ASC SEPARATOR ', ') AS cities
FROM
cities
GROUP BY
state;
state | cities |
|---|---|
California | Los Angeles |
Texas | Austin, Dallas, Houston |
Demo03:自定义分隔符
使用SEPARATOR参数自定义分隔符。将城市之间用分号(;)连接:
state | cities |
|---|---|
California | Los Angeles; San Diego; San Francisco |
Texas | Austin; Dallas; Houston |
Demo04:按其他字段排序
使用ORDER BY对结果进行排序。按城市名称的字母降序排列:
state | cities |
|---|---|
California | San Francisco, San Diego, Los Angeles |
Texas | Houston, Dallas, Austin |
Demo05:合并计算结果
GROUP_CONCAT不仅可以用来合并字段,还可以合并计算结果。例如,连接多个字段或计算的结果:
state | city | population |
|---|---|---|
California | Los Angeles | 1000000 |
California | San Francisco | 900000 |
Texas | Houston | 2000000 |
Texas | Austin | 900000 |
SELECT
state,
GROUP_CONCAT(CONCAT(city, ' (', population, ')') ORDER BY city ASC SEPARATOR ', ') AS cities
FROM
cities
GROUP BY
state;
state | cities |
|---|---|
California | Los Angeles (1000000), San Francisco (900000) |
Texas | Austin (900000), Houston (2000000) |
Demo06:最大长度限制
默认情况下,GROUP_CONCAT的结果字符串有最大长度限制。查询当前最大长度:
SHOW VARIABLES LIKE 'group_concat_max_len';
修改最大长度(例如,设置为 10000 字节):
SET SESSION group_concat_max_len = 10000;
本文原文来自CSDN,作者weixin_48935611
热门推荐
车主揭秘:如何选择最佳购车时机
新手买车SUV和轿车哪个好?应该怎么选?看老司机给出的答案你认可吗?
【夜读河北(英文版)】这个驴肉火烧不简单
九里香水培的养殖方法和注意事项有哪些?怎么养护?
如何快速解决手机变慢问题?有效提速指南
经方辨治头皮屑:从病因到治疗的中医解析
多地开启中医市集“养生+”:创新形式让中医药文化走进年轻人生活
成都周边游景点一日游攻略,畅游自然与人文的完美融合
动漫《K》人物介绍
嫦娥六号登月用到的人工智能技术介绍
股市的回购是什么以及目的是什么?这种回购对股价有何影响?
看完这些分析,你还会羡慕月入两万的月嫂吗?
红烧肉你真的会做吗?很多人第一步就错了,大厨教你正宗做法,香
修罗场是什么梗?
甲减需要忌口哪些食物
慈溪有望首次迎来高铁,GDP能否追昆山江阴!
如何快速完成毕业论文:高效写作指南
鼻窦炎引起的并发症及其症状
电脑如何修改文件后缀?文件怎么改后缀?批量修改文件后缀方法
重磅!2024年苏州市低空经济产业链全景图谱
茶叶耐不耐泡,到底跟什么有关系?什么茶比较耐泡?
伍德氏灯可以检查什么
小猫吃什么比较合适?如何为小猫选择健康食物?
ComfyUI自定义节点(插件)安装教程
高龄备孕,如何才能生个健康宝宝?
9个芭蕾舞蹈腿部训练动作,紧致双腿肉肉!告别大象腿
派出所罚款怎么交
春季必吃嫩豆腐呀
广西军训硬核出圈,实战现场也太野了!
半挂单驱和双驱的主要区别是什么?