MySQL最大N每组查询挂起

时间:2018-03-11 16:53:45

标签: mysql greatest-n-per-group

我有一个包含PredCustId,StartDT和EndDT列的表。对于给定的StartDT,可以有多个PredCustIds。这就是它的样子

enter image description here

对于每个独特的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。

1 个答案:

答案 0 :(得分:1)

您可以在子查询上使用内部联接以获取最大值

setState