mysql截取字符串需求

ppylox
·6/19/2024·0 阅读
AI 摘要模型根据正文自动生成,仅供参考

针对MySQL车辆台账数据,需按“使用单位”字段提取第二级公司名称(如长沙市公司),统计各地市公司车辆配置数量,筛选超过3台的超标单位并计算超标数量。核心SQL使用SUBSTRING_INDEX嵌套两次按“>”分隔符截取第二级公司名,结合GROUP BY分组、COUNT统计车辆数、HAVING过滤超标记录,并输出超标单位、配置数量及超标差值,按超标数降序排列。

今天收到一个mysql的小需求,让我帮忙研究研究。完整需求如下:

目标:找出某省公司车辆配置超标的地市公司						\n手段:利用SQL语句进行数据分析直接输出结果						\n数据表:湖南省公司各地市车辆出行台账,简化如下:						\n序号	车辆牌号	使用单位	车辆出行记录			\n1	湘A 11111	湖南省>长沙市公司>长沙县	***			\n2	湘A 11111	湖南省>长沙市公司>长沙县	***			\n3	湘A 22222	湖南省>长沙市公司>长沙县	***			\n4	湘A 33333	湖南省>长沙市公司>宁乡	***			\n5	湘A 44444	湖南省>长沙市公司>宁乡	***			\n6	湘A 55555	湖南省>长沙市公司>星沙	***			\n7	湘A 55555	湖南省>长沙市公司>星沙	***			\n8	湘A 66666	湖南省>长沙市公司>星沙	***			\n9	湘B 11111	湖南省>株洲市公司>醴陵	***			\n10	湘B 11111	湖南省>株洲市公司>醴陵	***			\n11	湘B 22222	湖南省>株洲市公司>炎陵	***			\n12	湘B 33333	湖南省>株洲市公司>炎陵	***			\n13	湘B 44444	湖南省>株洲市公司>炎陵	***			\n14	湘C 11111	湖南省>湘潭市公司>韶山	***			\n15	湘C 11111	湖南省>湘潭市公司>韶山	***			\n16	湘C 22222	湖南省>湘潭市公司>湘乡	***			\n公司要求各地市公司的车辆配置不能超过3台						\n想要得到的结果输出表如下:						\n序号	超标单位	车龄配置数量	车辆超标情况			\n1	长沙市公司	6	3	注:输出的超标单位是“车辆出行台账”中“使用单位”的部分字段,不是完整字段		\n2	株洲市公司	4	1			\n						\n请写出SQL语句:						\n

第一眼看到这个需求就感觉其中最麻烦的就是公司的截取,否则也不会特别标记出单位只取第二级这个问题。

或许是哪个公司遇到的一个实际问题无法解决所以求助了吧。

当然我很大概率也是写不出来的,但是我有ai助手哇。

把表结构跟数据内容描述清楚,然后把想要实现的效果描述清楚,居然就这么得到结构了。


问题描述:

有一张mysql数据表,表结构有id,车牌号carNum,公司company字段,其中compay的内容形式是湖南省>长沙市公司>长沙县,现在需要实现以下功能的sql语句:公司要求各地市公司的车辆配置不能超过3台,输出超标单位,车的配置数量,以及车辆超标数量,公司只取第二级的内容,例如长沙市公司。

通义灵码返回结果:


SELECT\n    SUBSTRING_INDEX(SUBSTRING_INDEX(`company`, '>', 2), '>', -1) AS city_company, -- 抽取公司名称的第二级\n    COUNT(`carNum`) AS car_config_count, -- 每个地市公司的车辆配置数量\n    COUNT(`carNum`) - 3 AS exceed_count -- 超过限制的车辆数量\nFROM\n    your_table_name -- 请将此替换为实际的表名\nGROUP BY\n    city_company\nHAVING\n    COUNT(`carNum`) > 3 -- 筛选车辆配置超过3台的地市公司\nORDER BY\n    exceed_count DESC; -- 按超标数量降序排列\n    \n    \n    这段SQL做了以下几件事:\n\n使用SUBSTRING_INDEX函数两次来提取公司名称的第二级,作为city_company。\n使用GROUP BY按地市公司分组。\n计算每个地市公司的车辆配置数量(car_config_count)。\n计算并输出每个超标地市公司的超标车辆数量(exceed_count),即实际车辆数减去允许的最大配置数(3台)。\n通过HAVING子句筛选出车辆配置超过3台的记录。\n最后,按超标车辆数量降序排序结果。\n请确保将your_table_name替换为您的实际表名。




完美运行。

相关文章

评论 (0)

暂无评论,来写第一条吧