我有两张桌子:
路线 标识说明 1 条街道1 2街2 3街3 4街4 5街5 细分市场 ID RouteID、Progres、LabelStart、LabelEnd 1 1 5 1 A 21 B 2 1 10 2 一个 10 3 2 15 3 25 4 2 15 2 20 5 3 20 1 11 6 3 22 4 10 7 4 30 5 11 8 4 31 2 12
我需要一个带有这些规则的序列:
- 表必须由 Progress ASC 订购
- 定义了一个列类型,如果 LabelStart 和 LabelEnd 是奇数则取 O,如果偶数取 E
- 如果两条路线的进度相同,则将行合并为一个,其中 LabelStart 是最小值(在 LabelStart Odd 和 LabelStart Even 之间),LabelEnd 是 Max,在这种情况下,Type 取值 A(All)
根据上面的示例数据,结果应该是
顺序 ID RouteID、Progres、LabelStart、LabelEnd 类型 1 1 5 1 A 21 BO 2 1 10 2 A 10 E 4 2 15 2 25 安 5 3 20 1 11 ○ 6 3 22 4 10 E 7 4 30 5 11 ○ 8 4 31 2 12
它适用于 Postgres 9.2