我有这样的表:
Name Result
T1 fail
T2 pass
T3 pass
T2 fail
T4 fail
T1 pass
T4 fail
现在,我想得到这样的结果:
Name Result
T1 pass
T2 pass
T3 pass
T4 fail
我试过使用这样的查询,但它不起作用。
select (case when Result = "pass" then "pass" else "fail" end) as Final_verdict,
Name from table_1 group by Name
谁能告诉我我错过了什么?
最佳答案
编辑
尝试以下操作:
SELECT Name, MAX(Result) As Result
FROM table_1
GROUP BY Name
每当一行有一个通过的记录时,这应该返回 pass
,因为 pass
按字典顺序在 fail
之后。
使用 else
而不是第二个 then
,并在 case
的末尾使用 end
。< br/>
您可能还必须使用单引号。
select (case when Result = 'pass' then 'pass' then 'fail' end) as Final_verdict,
Name
from table_1
当同一个名字有不同的结果时,你预计会发生什么?
关于sql - MySQL 中正确的 sql 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2295946/