题解 | #统计所有课程参加培训人次#

统计所有课程参加培训人次

https://www.nowcoder.com/practice/98aad5807cf34a3b960cc8a70ce03f53

/*substring_index
substring_index(str,delim,count)
str:要处理的字符串
delim:分隔符
count:计数
即 字符串截取函数,例子:str = 1|2|3|4|5

substring_index(str,'|',1)=1
substring_index(str,'|',2)=1|2
也就是说,如果count是正数,那么就是从左往右数,第N个分隔符的左边的全部内容;相反,如果是负数,那么就是从右边开始数,第N个分隔符右边的所有内容,如 substring_index(str,'|',-1)=5
如果要获得中间的数据,只需要调用两边函数即可,即先获取左边全部内容,然后获取右边的第一个,如 

substring_index(substring_index(str,'|',2),'|',-1)=2
*/

#用substring_index切割也特别麻烦,而且分出来的列没有统计价值,通过观察题目,发现只要算数量就可以了,那就通过替换函数法来计算逗号数量,1个逗号等于2课程,2个逗号等于3科创,

with cnt1 as
(
select 
*,
length(course)-length(replace(course,',',''))+1 as cnt
from cultivate_tb
where course is not null
)

select
sum(cnt) as staff_nums
from cnt1

用substring_index切割也特别麻烦,而且分出来的列没有统计价值,通过观察题目,发现只要算数量就可以了,那就通过替换函数法来计算逗号数量,1个逗号等于2课程,2个逗号等于3课程

全部评论

相关推荐

迟缓的斜杠青年巴比Q了:简历被投过的公司卖出去了,我前两天遇到过更离谱的,打电话来问我有没有意向报班学Java学习,服了,还拿我学校一个学长在他们那报班学了之后干了华为OD当招牌
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务