我需要编写一个 MySQL
查询,它将搜索每个 lead_id
的版本历史记录,并返回最早版本的行,其中线索类型类似于 "%reservation%"
,而 Employee name
类似于 "%Call Center%"
。
其想法是通过返回创建预订的版本的行来查找调用中心代理创建的预订。
我研究了与此类似的其他问题,但似乎没有一个问题符合我的具体标准。我不知道从哪里开始。假设这将是某种子查询?
这是我的数据示例:
+---------+---------+-------------+----------------------------+-------------------+
| lead_id | version | lead_typeID | Lead Type | Employee Name |
+---------+---------+-------------+----------------------------+-------------------+
| 3576109 | 1 | 2552 | Online Inquiry | Call Center - Joe |
| 3576109 | 2 | 2552 | Online Inquiry | George |
| 3576109 | 3 | 2552 | Online Inquiry | Lisa |
| 3576109 | 4 | 2552 | Online Inquiry | Call Center - Bob |
| 3576109 | 5 | 2552 | Online Inquiry | John |
| 3576109 | 6 | 2552 | Online Inquiry | George |
| 3576109 | 7 | 2552 | Online Inquiry | George |
| 3576109 | 8 | 2552 | Online Inquiry | John |
| 3576114 | 1 | 2553 | Online Reservation | Call Center - Joe |
| 3576114 | 2 | 2553 | Online Reservation | Call Center - Bob |
| 3576142 | 1 | 4866 | Sales Center - Reservation | John |
| 3576142 | 2 | 4866 | Sales Center - Reservation | Call Center - Joe |
| 3576160 | 1 | 2553 | Online Reservation | Lisa |
| 3576160 | 2 | 2553 | Online Reservation | Call Center - Joe |
| 3576160 | 3 | 2553 | Online Reservation | George |
| 3576160 | 4 | 2553 | Online Reservation | Lisa |
| 3576164 | 1 | 4865 | Sales Center - Inquiry | Call Center - Bob |
| 3576164 | 2 | 4865 | Sales Center - Inquiry | John |
| 3576164 | 3 | 4865 | Sales Center - Inquiry | George |
| 3576164 | 4 | 4865 | Sales Center - Inquiry | George |
| 3576193 | 1 | 2553 | Online Reservation | John |
| 3576193 | 2 | 2553 | Online Reservation | Call Center - Joe |
| 3576248 | 1 | 2553 | Online Reservation | Call Center - Bob |
| 3576248 | 2 | 2553 | Online Reservation | John |
| 3576261 | 1 | 2552 | Online Inquiry | Call Center - Joe |
| 3576261 | 2 | 2552 | Online Inquiry | Lisa |
| 3576261 | 3 | 2552 | Online Inquiry | Call Center - Joe |
| 3576263 | 1 | 4865 | Sales Center - Inquiry | George |
| 3576263 | 2 | 4865 | Sales Center - Inquiry | Lisa |
| 3576263 | 3 | 4865 | Sales Center - Inquiry | Call Center - Bob |
| 3576263 | 4 | 4356 | Site - Reservation | Call Center - Bob |
| 3576289 | 1 | 4865 | Sales Center - Inquiry | George |
| 3576289 | 2 | 4865 | Sales Center - Inquiry | George |
| 3576310 | 1 | 4867 | Sales Center - Lost | John |
| 3576310 | 2 | 4867 | Sales Center - Lost | Call Center - Joe |
| 3576310 | 3 | 4867 | Sales Center - Lost | Call Center - Bob |
+---------+---------+-------------+----------------------------+-------------------+
最佳答案
看起来(leadid, version)
是唯一的。如果是这样,您可以INNER JOIN
一个聚合,获取每个潜在客户 ID 的最低版本。
SELECT t.*
FROM elbat t
INNER JOIN (SELECT leadid,
min(version) version
WHERE `Lead Type` LIKE '%reservation%'
AND `Employee Name` LIKE '%Call Center%'
GROUP BY leadid) x
ON t.leadid = x.leadid
AND t.version = x.version;
关于当列值更改并匹配搜索参数时MySQL查询返回行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57420477/