2016-03-09 56 views
0

下面的數據示例中,我具有相同的實時情況。在PLSQL中查找優化查詢

p1 A(True) 
p1 B 
p1 C 
p2 B(True) 
p2 C 

在上面5行,有兩個獨特的價值p1,p2.

我想導致下面的標準

  1. 所有行具有值 'A'
  2. 行具有值「 B'只有當'A'不可用時。

**預期輸出:

p1 A 
p2 B** 

我已經長查詢發現這一點,任何人都可以告訴更多的優化方法,這樣做?

回答

0

它會爲你工作作爲預期的輸出

select unique_value,output 
from unique_data 
where 
     case 
       when output ='A' Then 1 
       else output ='B' 
     end 
group by unique_value 
0

您可以使用如下查詢:

SELECT t.id, 
     MIN(t.val) 
    FROM TEST_TABLE t 
GROUP BY id 
HAVING MIN(val) IN ('A', 'B'); 

表數據:

id val 
------- 
p1 A 
p1 B 
p1 C 
p2 B 
p2 C 
p3 C 
p3 D 

結果:

id val 
------- 
p1 A 
p2 B 
+0

感謝您的解決方案.. Group by Min正在工作.. –