0
我很难弄清楚如何在MySQL中编写正确的代码。不使用GROUP BY子句的MySQL MAX函数
这里是我迄今为止...
SELECT ProjectSteps.ProjectID, ProjectSteps.StepID, Step.StepName, Step.Definition
FROM ProjectSteps, Step
WHERE ProjectSteps.ProjectID =
(SELECT MAX(ProjectSteps.StepID) OVER ProjectSteps.ProjectID
FROM ProjectSteps
WHERE ProjectSteps.ProjectID IN (1, 2, 3)
)
ORDER BY ProjectSteps.ProjectID;
对于我的询问,我有2个表
STEP (StepId, StepName, Definition)
和
ProjectSteps (StepID, ProjectId, StartingDate, EndingDate)
我得包括每个项目的最后一步的步骤和步骤定义的名称。
由于:
Project ID StepId StepName Definition
我不能使用GROUP BY子句:(
希望有人会得到它的权利
为什么你不能用'组by'? 'mysql'不支持使用'over'的窗口函数。可能使用'用户定义的变量'或者子查询和'limit',但是为什么? – sgeddes
更好的问题是“为什么你不能使用group by?”而不是OP问题 –
因为这是我的一个约束。 – GasFou