我遇到了一个有趣的问题。我有一张工人身份证和他们来访天数的表格。这是转储:
CREATE TABLE `pp` (
`id` int(11) DEFAULT '1',
`day` int(11) DEFAULT '1',
`key` varchar(45) NOT NULL,
PRIMARY KEY (`key`)
)
INSERT INTO `pp` VALUES
(1,1,'1'),
(1,20,'2'),
(1,50,'3'),
(1,70,'4'),
(2,1,'5'),
(2,120,'6'),
(2,90,'7'),
(1,90,'8'),
(2,100,'9');
所以我需要找到至少一次旷工超过 50 天的工人。例如,如果工人在第 5 天、第 95 天、第 96 天、第 97 天访问,如果我们查看 deltas,我们可以看到最大的 delta (90) 超过 50,因此我们应该将这个工人包含在结果中。问题是我如何有效地找到不同工人访问之间的增量?
我什至无法想象如何使用 mysql 表作为结果数据数组。
所以我们需要为不同的工人分离天的价值,对它们进行排序,然后找到每个工人的最大增量。但是怎么做?例如,有什么方法可以在 sql 中枚举排序数组?