多个表中的最大函数
Max function in multiple tables
无法获取每个项目的状态最大值
我唯一得到的是列表中从一到最后的所有状态。该输出
| idState | idProject |
| -------- | -------------- |
| 1 | 1 |
| 2 | 1 |
| 3 | 1 |
| 4 | 1 |
| 1 | 2 |
| 2 | 2 |
等等。
我需要的是
| idState | idProject |
| -------- | -------------- |
| 4 | 1 |
| 2 | 2 |
其中 State 是每个项目列中的最大值
SELECT e.idState, e.delivery, ep.idProject
FROM State e
CROSS JOIN StatexProject ep ON e.idState = ep.idState
WHERE ep.idProject = (SELECT MAX(exp.idState) FROM StatexProject exp
WHERE ep.idState = exp.idState);
我认为您正在寻找基本聚合(每组最多)。鉴于您的预期输出,您在评论中对戈登问题的回复没有意义。试一试,我们可以从那里开始
SELECT max(e.idState) as idState, ep.idProject
FROM State e
JOIN StatexProject ep ON e.idState = ep.idState
GROUP BY ep.idProject;
无法获取每个项目的状态最大值 我唯一得到的是列表中从一到最后的所有状态。该输出
| idState | idProject |
| -------- | -------------- |
| 1 | 1 |
| 2 | 1 |
| 3 | 1 |
| 4 | 1 |
| 1 | 2 |
| 2 | 2 |
等等。 我需要的是
| idState | idProject |
| -------- | -------------- |
| 4 | 1 |
| 2 | 2 |
其中 State 是每个项目列中的最大值
SELECT e.idState, e.delivery, ep.idProject
FROM State e
CROSS JOIN StatexProject ep ON e.idState = ep.idState
WHERE ep.idProject = (SELECT MAX(exp.idState) FROM StatexProject exp
WHERE ep.idState = exp.idState);
我认为您正在寻找基本聚合(每组最多)。鉴于您的预期输出,您在评论中对戈登问题的回复没有意义。试一试,我们可以从那里开始
SELECT max(e.idState) as idState, ep.idProject
FROM State e
JOIN StatexProject ep ON e.idState = ep.idState
GROUP BY ep.idProject;