【发布时间】:2020-11-27 15:42:06
【问题描述】:
我在非常旧的版本 (MySQL 5) 上的 SQL 请求遇到问题。看来我的需求可以通过 LAG 和 LEAD 函数轻松满足,但它们在 MySQL 8 之前不存在,所以这不是一个选项......
所以这里有一组简化的数据:
CREATE TABLE Tickets (
incrementalID integer,
TicketNumber smallint,
SupportGroup varchar(100)
);
INSERT INTO Tickets (incrementalID, TicketNumber, SupportGroup) VALUES
(345678, 131, 'GSSbdd'),
(347681, 131, 'GSSmdw'),
(347682, 131, 'COPsn1'),
(347683, 131, 'COPsn1'),
(347684, 131, 'COPsn2'),
(342631, 198, 'VIReer'),
(347629, 227, 'LPOdfh'),
(350112, 299, 'COPmwn'),
(350113, 299, 'GSSgdf'),
(350119, 299, 'COPmwn'),
(346784, 714, 'LPOerz'),
(346871, 714, 'GSSwnt'),
(346872, 714, 'GSSunx'),
(346873, 714, 'GSSunx'),
(348931, 714, 'GSSwnt'),
(348941, 714, 'LPOefe'),
(401232, 714, 'LPOefe'),
(401233, 714, 'LPOefe'),
(412344, 714, 'LPOeze'),
(412345, 714, 'LPOeze'),
(416377, 714, 'GSSunx'),
(416378, 714, 'GSSmdw'),
(416379, 714, 'GSSgdf'),
(416380, 714, 'GSSgdf'),
(416381, 714, 'GSSgdf');
对于相同的 TicketsNumbers,我只需要选择“SupportGroup”字段从 GSS% 更改为 COP% 或 COP% 更改为 GSS% 的行
例如,对于 TicketNumber 131,我只想选择第 2 行和第 3 行,因为 SupportGroup 从 GSS% (GSSmdw) 更改为 COP% (COPsn1)。
我不想选择支持组在 GSS% 和另一个 GSS% 之间发生变化的行(例如在第 1 和 2 行中,例如 GSSbdd 到 GSSmdw)
所以最后,预期的结果是:
incrementalID TicketNumber SupportGroup
347681 131 GSSmdw
347682 131 COPsn1
350112 299 COPmwn
350113 299 GSSgdf
350119 299 COPmwn
对于信息,我的数据必须按 TicketNumber 排序,然后是 incrementalID,而且我没有数据库的写入权限,所以我只能读取 SQL 请求。
【问题讨论】: