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
热门推荐
塔罗牌的种类,以及韦特塔罗牌的发明和设计
急性心肌梗塞的治疗要点
在家打造舒适阅读角:客厅、阳台、卧室等多空间创意布局指南
狱警公务员考试怎么备考
专家解析岛屿争夺战:突袭有奇效 岸舰导弹作用大
房间声学处理:四大手段打造专业级听音环境
对鸡蛋过敏的人可以吃鸭蛋和鹅蛋吗
9个异木棉拍照姿势,拍出梦幻粉色调,甜美自然有氛围!
家庭规则:制定合理家规,培养自律的孩子
研究发现:拟人化设计如何激发健身动力?
上海闵行职业技术学院加速AI赋能职教变革 构建数字化转型新范式
【动物界全系列】蚁总科—古山蚁亚科
重塑团队默契,应对豪门足球风云关键时刻
什么工作适合团队协作
《六姊妹》大结局:陈光明考上研究生,才知何家喜有多自私
“十一”出游目的地前瞻:有传统热门也有新晋黑马
揭秘真正护眼手机选择指南:PWM高频调光vsDC调光深度解析
当父母能够做到“无条件”的爱孩子,才是真正教育的开始!
如何通过薪酬管理提升员工绩效?
近视激光手术设备有望国产化,上海LAB基地助医生与企业合作
绿茶能不能去口臭
风吹树式:改善高低肩的瑜伽体式详解
9种“招财花”,穷也要养一盆,小日子很舒心
如何规划家庭的赡养老人预算?
植发术前全方位评估之2025年专业检查费用概览
香港永居需注销内地户籍吗?
怎么有效的预防脚臭
紫微斗数文昌星和文曲星的区别
如何有效减少手机频闪对眼睛的伤害
痛风的原发性和继发性怎么区分