Oracle sql语句,如何为当前情况创建好的语句?

Oracle sql语句,如何为当前情况创建好的语句?,oracle,Oracle,我有一张像这样的桌子 |id|name|problem| 1 A1 Good 2 A2 Bad 1 A1 Good 2 A2 Good 我希望从这个表中得到的是,对于唯一id和名称,我们可能会遇到不同的问题 如果例如A1=适用于所有情况,我需要返回1 A1 Good 如果我有A2=Good和A2=Bad,我需要返回2个A2=Bad 预期的结果应该是 |id|name|problem| 1 A1 Good 2 A2 Bad 谢谢你的帮

我有一张像这样的桌子

|id|name|problem|
 1   A1   Good
 2   A2   Bad
 1   A1   Good
 2   A2   Good
我希望从这个表中得到的是,对于唯一id和名称,我们可能会遇到不同的问题

如果例如A1=适用于所有情况,我需要返回1 A1 Good

如果我有A2=Good和A2=Bad,我需要返回2个A2=Bad

预期的结果应该是

|id|name|problem|
 1   A1   Good
 2   A2   Bad
谢谢你的帮助

加: 所以我想我找到了解决方案,看起来很简单:

select T.id,T.name,min(T.problem) from table T group by T.id,T.name

感谢所有试图帮助我的人。

类似这样的事情,尽管我不能100%确定我理解这个问题

select id, 
       name, 
       case 
          when total_count = good_count then 'Good' 
          else 'Bad'
       end as problem
from (
  select id, 
         name,
         count(*) as total_count, 
         case (when problem = 'Good' then 1 end) as good_count
  from the_table
  group by id, name
) 

这将统计每个id/名称组合的总项目数,并统计好项目数。如果总计数等于good count,则good将显示为“Bad”

因此,需要为A2返回Bad,当表中的两个值中有一个为Bad时。如果A2的两个值都是好的,那么A2的返回值应该是好的。对吗?你能再读一遍你的问题并确认它足够清楚吗?您解释的内容和发布的预期输出内容不太清楚。@realspirituals什么内容不太清楚?A1=适用于所有情况,然后重新运行A1=良好,如果不适用,返回什么内容?也A2=好,也A2=坏返回A2=坏,如果不是???如果我有两行A1=坏,A1=好,结果应该是A1-坏。如果A1良好,A1良好结果应为A1良好。