最好的方法是检查具有相同GroupID的表中不同的行组(例如不同的团队)是否具有SINGLE队长?例如,Captain Identifier可能是'10',因此它必须通过具有相同groupID的多个记录并检查是否只有一个记录,其中positionID为'10'。我需要它为所有团队做到这一点,即所有groupID的
-------------------------------------------------
ID | Group ID | Name | Position|
-------------------------------------------------
1 1 John 3
2 1 jim 3
3 1 Hahn 4
4 1 Mary 4
5 1 Moe 4
6 1 Charlie 10
7 2 taylor 4
8 2 Geoff 4
9 2 adam 4
10 2 cam 10
11 3 sharon 2
12 3 tony 4
13 3 steve 3
14 3 eve 4
15 3 gwen 10
--------------------------------
所以我需要它做的是检查每个groupID只有一个10作为位置。
先谢谢你们。查看底部的图片链接。
我正在使用mysql btw
很抱歉,如果描述得很糟糕
答案 0 :(得分:1)
如果我理解你 - 我认为你需要这样的东西:
select groupId, sum(case when positionID='10' then 1 else 0 end) as captains
from tbl_name
group by groupID
having captains = 1
我结束了吗?
答案 1 :(得分:0)
如果我理解正确,你需要一个指示,告诉你groupID是否有一个以上的队长。
所以你需要的是:
select groupID,case when cnt = 1 then 1 else 0 end as IND_ONE_CAPTAIN from (
select groupID, sum(case when positionid = '10' then 1 else 0 end) as cnt
from players
group by groupID)
现在IND_ONE_CAPTAIN列由1或0组成,1表示组ID只有1个队长,0表示他们有更多。