2014-09-29 112 views
0

我想知道是否有人曾经处理类似的问题。我正在尝试从传入数据库的旧数据库中提取数据。出于某种原因,作者认为复制记录是一个好主意。所以我处理的报价表如下所示:在数据库中重复记录

id  code  quote_no    client 
1  A  Qte 2013/001-A  John Smith 
2  A/B Qte 2013/002-A/B  Mark Brown 
3  A  Qte 2013/002-A  Mark Brown 
4  B  Qte 2013/002-B  Mark Brown 

没有什么东西直接表明id2,3,4属于一起。代码是指部门。

我想分开独特的和'复合'的记录,如Qte 2013/002-A/B和Qte 2013/001-A。基本上要得到一个quote_no每个唯一的数字quote_no。任何想法将不胜感激。

+0

整个表格中quote_no('Qte ****/*** - ***)'的格式是否保持不变? – 2014-09-29 15:03:56

+0

目前还不完全清楚输出应该是什么。您可以发布重复数据删除行集应该是什么样子的样本吗? – 2014-09-29 15:04:12

+0

格式大多保持不变。我后面的输出是id 1和2.没有像id 3和4的'sub-quotes'重复。希望这更有意义。 – 2014-09-29 15:08:59

回答

2

假设quote_no具有固定格式,您可以在quote_no的子字符串上对GROUP()进行GROUP()并获取所有记录及其各自的计数。

从那里,它应该与原始表联接,删除所有重复行,其中WHERE条件(代码LIKE'/'或count = 1)分别用于查找化合物和唯一记录。

SQLfiddle demo

+0

它的工作辉煌。谢谢。 – 2014-09-29 15:59:16