我无法终生解决该问题。
有无限数量的组ID,以及大约5个processID的集合。 显示的内容取决于groupID中存在的processID。
我有一个具有以下简化设置的表:
groupID int
processID int
其中,每个交易的组ID均相同。每个交易可以有多个属于该组的流程。
具有如下所示的值,例如:
Group ID ProcessID
1 1x2
1 1x2
1 2y4
1 2y4
1 3u7
1 4i9
1 5x4
我需要编写只返回进程ID 4的查询,如果同一组中同时存在1x2、2y4和4i9,则抑制1x2和2y4。如果仅存在1x2和2y4,则返回2y4,从结果集中消除1x2。
因此,如果对于给定的processID我有1x2,2y4,4i9,则输出将如下所示:
1x2 4i9
如果1x2和5x4存在于同一组中,则也有可能只显示1x2。
该查询显示数十列,我希望在没有分组依据的情况下执行此操作,但似乎找不到解决方法。
答案 0 :(得分:1)
您似乎想要max()
:
select groupId, max(processId)
from t
group by groupId;