2016-10-18 31 views
-1

假設我有如下記錄的表...如何通過每一行中尋找一個和下一個值組

ResumeId Action 
39092  DEV 
39092  C  
39092  C  
39096  C  
39096  C  
39098  CONF  
39098  CONF  

我怎樣才能將它們分組,使輸出會是什麼樣子呢?在下面的情況下,由於ResumeId = 39092至少有一個DEV記錄,則分類結果應該返回DEV ...

ResumeId Action 
39092  DEV  
39096  C  
39098  CONF   
+1

如果沒有DEV但C和CONF用於resumeid會怎麼樣? –

+1

你的邏輯不完整。 –

+0

如果所有具有相同ID的resumeRes具有相同的值(都是C),那麼結果應該是該值(C)... –

回答

3

這裏有一個方法:

select resumeid, 
     (case when max(action) = min(action) then max(action) 
      when sum(case when action = 'DEV' then 1 else 0 end) > 0 then 'DEV' 
      else '??' 
     end) 
from t 
group by resumeid; 

您的規則不指定什麼如果有多個actions,但沒有一個是DEV

相關問題