获取最长匹配数(SQL)

时间:2014-06-26 19:40:13

标签: 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,虽然它是可能的,但它是否值得或使用编程语言这样做更好?

1 个答案:

答案 0 :(得分:0)

这似乎符合你的要求:

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

对于您的样本数据,它给出了期望结果。如果这不正确,请使用更详细的示例数据编辑您的问题,以便更好地解释逻辑。