近期,给自己制订了一项学习计划。学习SQL,其实接触SQL那也是大学时期的事情,当时学习的是Access数据库,语句基本的也都没有忘excel合并字符串,所以对于基本的SQL入门来说,可能也相对快一些。

另外,上个月的时候,得俊红老师的小蓝书《对比Excel,学习SQL数据分析》一书。作为入门教程感觉极佳,便萌生了再次学习SQL的念头。同时,自己也觉得是时候将以前自己的知识进行强化了,也作为一种兴趣爱好而已。

虽然作为一名人力资源从业者,况且还是个文科生,但是对于Excel以及计算机的兴趣丝毫没有减弱,这并不影响我学习代码。

此外本人的新书《Excel人力资源管理实战宝典》也即将快要和广大的读者见面了,预计8月底吧。

所以,边学习SQL边更新公众号excel合并字符串,后面将会对比Power Query,Power pivot学习。也希望广大的读者们指正批评。如有不当的地方,请予以指明。

本期Excel函数:Textjoin

字符串合并_字符串合并函数_excel合并字符串

本期SQL函数:group_concat

源数据如下:

字符串合并函数_excel合并字符串_字符串合并

结果如下:

字符串合并函数_excel合并字符串_字符串合并

excel合并字符串_字符串合并函数_字符串合并

在Excel中这个问题要使用到数组公式,即:

在H5单元格中输入以下公式,按键完成。

{=TEXTJOIN(",",1,IF(G5=Sheet1!$B$2:$B$15,Sheet1!$D$2:$D$15,""))}

在I5单元格中输入以下公式,按Enter键完成。

=ROUND(AVERAGEIF($B$2:$B$15,G5,$D$2:$D$15),2)

在SQL中这个问题解决也是相对比较容易的,分组合并即可。代码如下:

select  class,  group_concat(score) as score_concat,  round(avg(score), 2)as avg_scorefrom  mydata.mytable_classgroup by  class

结果如下:

字符串合并函数_字符串合并_excel合并字符串

在上述有代码里面,使用到了最重要的一个SQL函数是group_concat函数。

字符串合并_字符串合并函数_excel合并字符串

这里省略了分隔符,默认为逗号,也可以指定分隔符。如下代码所示:

select  class,  group_concat(score separator ";") as score_concat,  round(avg(score), 2)as avg_scorefrom  mydata.mytable_classgroup by  class

结果如下:

字符串合并_字符串合并函数_excel合并字符串

除了指定分隔符外,还可以对合并的数字进行排序。如下代码所示:

excel合并字符串_字符串合并函数_字符串合并

select  class,  group_concat(scoreorder by  score separator ";") as score_concat,  round(avg(score), 2)as avg_scorefrom  mydata.mytable_classgroup by  class

结果如下:

字符串合并函数_字符串合并_excel合并字符串

当然还可以给结果加上序号,如下所示:

select  (@i := @i + 1) as id,  class,  group_concat( scoreorder by  score separator ";") as score_concat,  round(avg(score), 2)as avg_scorefrom  mydata.mytable_class,  (  select    @i := 0) as itgroup by  class

结果如下:

excel合并字符串_字符串合并_字符串合并函数

关于后面的在SQL中使用变量的方法在以后的帖子中会有相关的案例与说明。

限 时 特 惠: 本站每日持续更新海量各大内部创业教程,加站长微信免费获取积分,会员只需38元,全站资源免费下载 点击查看详情
站 长 微 信: thumbxmw