蜀道难古诗mysql中sql语句中常见的group_concat()函数意思以及⽤法,oracle
中。。。
通俗点理解,其实是这样的:group_concat()会计算哪些⾏属于同⼀组,将属于同⼀组的列显⽰出来。要返回哪些列,由函数参数(就是字段名)决定。分组必须有个标准,就是根据group by指定的列进⾏分组。
bootloader
group_concat函数应该是在内部执⾏了group by语句,这是我的猜测。
1.测试语句:自制玩教具
lect group_concat(town) from players group by town
结果去查找town中去查找哪些值是⼀样的,如果相等,就全部列出来,以逗号分割进⾏列出,如下:
带雨的字
group_concat(town)
北京,北京
长沙
2.测试:lect group_concat(town) from players
结果:
group_concat(town)
客厅电视背景墙长沙,北京,北京,
上⾯是否可以证明,group_concat只有与group by语句同时使⽤才能产⽣效果? 下⾯进⾏了实际测验
结论:group_concat()函数需要与group by语句在⼀起使⽤,才能得到需要的效果。
原因可以这样理解:group_concat()得到是属于x组的所有成员(函数⾥⾯列参数指定需要显⽰哪些字段)。x组从哪⾥来?如果没有group by进⾏指定,那么根本不知道group_concat()根据哪个分组进⾏显⽰出成员。所以,像上⾯没有group by⼦句的时候,就显⽰了长沙和北京。文字的力量
实际中什么时候需要⽤到这个函数?
丝瓜叶
假如需要查询的结果是这样:左边显⽰组名,右边想显⽰该组别下的所有成员信息。⽤这个函数,就可以省去很多事情了。
另外,假如我这样使⽤:SELECT group_concat( name, x ) FROM `players` town。意义不⼤。group_concat()指定⼀个列是最好的情况。如果指定了多个列。那么显⽰结果类似这样:
感恩节英语作文
group_concat(name,x)
王滔,王⼩明男,刘惠⼥,舒明⼥
oracle中与其⼀样的功能函数是wmsys.wm_concat()也要配合分组查询group by使⽤
lect j.jobtype,count( j.jobtype) as job_stu_num ,wmsys.wm_concat(e.id) as studentids from exam_student e inner join exam_job j amid=182
and e.jobid=j.id group by j.jobtype,j.id order by j.jobtype ,j.id;