背景
遇到问题:一个表中的一个字段表示行业分类(该字段是个代码值,如10100代表大类[农、林、牧、渔业],0101,0102,0103,0104分别代表小类[农业,林业,畜牧业,渔业]),现在需要根据行业大类分组,统计各行业的人数。
行业代码表如下:
select * from gyr*****_d_hylb
下表存储用户的行业代码:
SELECT id,hydm from gy****_g**l_qzyx
解决思路
此表的代码表的前面两位代表行业大类,所以可以根据行业代码的前面两位进行分组查询。可以利用LEFT()函数或者SUBSTR()函数等(我用MYSQL)。
SELECT LEFT(hydm,2) L2_hydm,COUNT(1) from gyr****_gr**_qzyx GROUP BY LEFT(hydm,2)
这样就把用户根据行业分组了。
结果
用户表和代码表关联查询一下,展示全面的数据效果。
SELECThy.dmmc,hy.dmid,LEFT (qz.hydm, 2) L2_hydm,COUNT(1) sumFROMgyr*****rjl_q**x qz,gyr****p_d_h*b hyWHERELEFT (qz.hydm, 2) = LEFT (hy.dmid, 2)GROUP BYLEFT (qz.hydm, 2)
这样就可以解决上面的问题啦!
如果觉得《SQL 根据一个字段的一部分分组查询》对你有帮助,请点赞、收藏,并留下你的观点哦!