我有一个Mysql数据库,我需要将输出到前端[滚动类型]。我希望从查询输出中获取自定义列,而不是使用逻辑来迭代Java代码。
自定义规则:如果一个团队在最后一列中有一条或多条记录为“进行中”,则结果集应该为此团队提供“进行中”。
Table: Team_Counselling
------------------------------------------
Team | Player_name | Counselling_Status
------------------------------------------
Ginger | Alpha | Completed
Ginger | Beta | In Progress
Ginger | Gamma | In Progress
Lemon | Heth | Completed
Lemon | Kaph | Completed
Lemon | Lambda | Completed
Cardamon| Omega | In Progress
Cardamon| Sigma | In Progress
Cardamon| Theta | In Progress
----------------------------------------------
所需的输出(如在查询结果中)
------------------------------
Team | counsellingTeamStatus
------------------------------
Ginger | In Progress
Lemon | Completed
Cardamon| In Progress
我尝试了以下查询,这无济于事。
SELECT Team,
IF(Counselling_Status='In Progress', 'In Progress', 'Completed') as counsellingTeamStatus
FROM team_counselling
GROUP BY Team
请帮助我。
编辑:以下查询给了我预期的输出。但是,如果有更好的解决方案,那将非常有用。
SELECT Team
, IF ( INSTR ( GROUP_CONCAT(DISTINCT(Counselling_Status)) , 'In Progress'), 'In Progress', 'Completed') as counsellingTeamStatus
from team_counselling
group by Team;
答案 0 :(得分:-1)
好像你想要一个简单的查询。如果[5, 0, 5]
列的唯一可能和已发生的值是前面提到的两个,那么以下查询就足够了:
Counselling_Status