某天夜里,公司IT老大突然让我帮忙写个SQL,查询社保断缴次数,我一想,这是在领导面前展示能力的好机会啊,于是兴致勃勃的开始准备。
1.分析问题:社保断缴次数,这个sql的核心不就是查询不连续数据吗。
怎么查询不连续的数据呢,不存在下一条符合条件的数据即可。
2.建demo,模拟测试:
CREATE TABLE `jiaofeibiao` (
`name` varchar(10) DEFAULT NULL,
`nianyue` char(6) DEFAULT NULL,
`jishu` int(3) unsigned DEFAULT NULL,
`para_label` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
nianyue字段为char,不能直接加减,另建一个jishu,作为辅助字段,先测试。
使用‘AAA’进行测试,断缴次数为4,分别是201801,201901,202004,202006
SELECT
a. NAME,
COUNT(*)
FROM
jiaofeibiao a