2014-06-26 36 views
0

我有一個表作爲獲得最長匹配的號碼(SQL)

pattern | score 
    ----------+------ 
     12345 | 2 
    123456 | 2 
     1234 | 2 
     123 | 2 
    1234567 | 3 
    12345678 | 3 

我需要的輸出:

pattern | score 
----------+------ 
    123 | 2 
1234567 | 3 

的邏輯是基於爲獲得具有相同分數的最長模式,即123得分爲2,現在如果一個數字以123開頭,那麼它的分數應該是2,與1234567相同是具有3分的最長模式,所以無論整數是多少,如果它以1234567開頭,則分數3分配編輯它。

我無法弄清楚如何使用sql,儘管它可能,但它是值得的還是使用編程語言這樣做更好?

回答

0

這似乎做你所要求的:

select min(pattern), score 
from table t 
group by score; 

爲了您的樣本數據,它賦予了慾望的結果。如果這不正確,請使用更詳細的示例數據編輯您的問題以更好地解釋邏輯。