[英]mysql - running sums for multiple categories with group by clause
[英]MySQL MAX function for categories without using GROUP BY clause
我很难弄清楚如何在MySQL中编写正确的代码。
这是我到目前为止所拥有的...
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子句:(
希望有人能做对!
我仍然不确定为什么不能使用group by
,但这是使用correlated subquery
另一种选择:
select ps.projectid, s.stepid, s.stepname, s.definition
from projectsteps ps
join step s on ps.stepid = s.stepid
where ps.projectid in (1,2,3)
and s.stepid = (select stepid
from projectsteps ps2
where ps.projectid = ps2.projectid
order by ps2.stepid desc
limit 1)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.