【发布时间】:2012-04-10 08:40:47
【问题描述】:
我有下表
tbl
|city| district| start_num| end_num|
|a |b |10 |19|
|a |b |20 |29|
|a |b |30 |33|
|c |d |34 |40
|c |d |41 |59|
|c |d |70 |100|
我想有另一个表,我已经合并了行,考虑到: 相同的城市和地区以及范围开始结束MUSS是连续的。
tbl_res should be
|city |district |start_num |end_num|
|a |b |10 |33|
|c |d |34 |59|
|c |d |70 |100|
这个想法是消除与另一行的范围是连续的行,以具有更大连续范围的一行结束。
也许循环通过php?
【问题讨论】:
-
我不太明白你想要达到什么目的。您能否更详细地解释您的预期结果。为什么“a,b”配对折叠成一个结果,而“c,d”配对折叠成两个?
-
我编辑了这个例子。我想要的是只为同一对城市/地区添加连续的范围,即 a-b:10-20 + 21-30 + 31-33。对于 c-d 我只能加入前 2 个范围:34-40 + 41-59 但不是 70-100,因为我将在 60-69 范围内有一个“洞”
-
在包含所有数据(预处理)的表中有/期望有多少行?
-
原表超过20万行;我想将它减少到尽可能少的行数。即如果可能,每个城市/地区组合 1 行;但是这是不可能的,因为并非所有范围都是连续的