arrow智能手表mysql中sql语句中常见的group_concat()函数意思以及⽤法,oracle
中。。。
通俗点理解,其实是这样的:group_concat()会计算哪些⾏属于同⼀组,将属于同⼀组的列显⽰出来。要返回哪些列,由函数参数(就是字段名)决定。分组必须有个标准,就是根据group by指定的列进⾏分组。
group_concat函数应该是在内部执⾏了group by语句,这是我的猜测。
1.测试语句:
select group_concat(town) from players group by town
结果去查town中去查哪些值是⼀样的,如果相等,就全部列出来,以逗号分割进⾏列出,如下:
group_concat(town)
北京,北京
长沙
mysql语句转oracle前端工程师岗位概述2.测试:select group_concat(town) from players
结果:delphi怎么没落的
group_concat(town)
长沙,北京,北京,
上⾯是否可以证明,group_concat只有与group by语句同时使⽤才能产⽣效果? 下⾯进⾏了实际测验
结论:group_concat()函数需要与group by语句在⼀起使⽤,才能得到需要的效果。
原因可以这样理解:group_concat()得到是属于x组的所有成员(函数⾥⾯列参数指定需要显⽰哪些字段)。x组从哪⾥来?如果没有group by进⾏指定,那么根本不知道group_concat()根据哪个分组进⾏显⽰出成员。所以,像上⾯没有group by⼦句的时候,就显⽰了长沙和北京。
实际中什么时候需要⽤到这个函数?java connection
假如需要查询的结果是这样:左边显⽰组名,右边想显⽰该组别下的所有成员信息。⽤这个函数,就可以省去很多事情了。
字符串常量例子另外,假如我这样使⽤:SELECT group_concat( name, sex ) FROM `players` town。意义不⼤。group_concat()指定⼀个列是最好的情况。如果指定了多个列。那么显⽰结果类似这样:
group_concat(name,sex)
王滔,王⼩明男,刘惠⼥,舒明⼥
oracle中与其⼀样的功能函数是wmsys.wm_concat()也要配合分组查询group by使⽤
select 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;
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论