我有一个包含PredCustId,StartDT和EndDT列的表。对于给定的StartDT,可以有多个PredCustIds。这就是它的样子
对于每个独特的StartDT,我想检索具有最大PredCustId的行。我特意尝试实现左连接解决方案,如here所示,但每次运行时查询都会挂起,我不明白为什么。
这有效
SELECT a.*
FROM PredCusts AS a
LEFT OUTER JOIN PredCusts AS b
ON a.StartDT = b.StartDT;
但是这会挂起
SELECT a.*
FROM PredCusts AS a
LEFT OUTER JOIN PredCusts AS b
ON a.StartDT = b.StartDT AND a.PredCustsId < b.PredCustsId;
为什么呢?请注意,我使用的是MySQL 5.7.21和MySQL Workbench 6.3。
EDIT 我的桌子有大约370,000行。唯一的索引是主键,PredCustsId。
答案 0 :(得分:1)
您可以在子查询上使用内部联接以获取最大值
setState