select Emp_Id,
case
when sum(CASE WHEN flag='Y' THEN 1 END) = count(1) then 'Auto'
when sum(CASE WHEN flag='N' THEN 1 END) = count(1) then 'Manual'
else 'Partial'
end as Status
from mytable
group by Emp_Id
Select Emp_Id,
case avg(case when flag = 'Y' then 1 else 0 end)
when 0 then 'manual'
when 1 then 'auto'
else 'partial' end Status
from mytable
group by Emp_Id
2条答案
按热度按时间xxslljrj1#
case
子句可以如下使用:这个想法是看标志
count(1)
的总数是否等于YES
或NO
标志的数量。Demo here
pftdvrlh2#
您可以使用大小写超过标志的平均值转换为0/1值:
演示here。