耗子喂汁 2023-03-07 10:09 采纳率: 55.6%
浏览 44
已结题

SQL如何合并相邻的重复项,并获取被合并的大小值

现有一张表,表结构以及数据如下

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table structure for t_position
-- ----------------------------
DROP TABLE IF EXISTS `t_position`;
CREATE TABLE `t_position`  (
  `id` int(0) NOT NULL COMMENT '主键ID',
  `start_md` int(0) NULL DEFAULT NULL COMMENT '开始距离',
  `end_md` int(0) NULL DEFAULT NULL COMMENT '结束距离',
  `positon` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '所在地址',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of t_position
-- ----------------------------
INSERT INTO `t_position` VALUES (1, 100, 121, '龙山路103号');
INSERT INTO `t_position` VALUES (2, 121, 172, '龙山路103号');
INSERT INTO `t_position` VALUES (3, 172, 254, '龙山路103号');
INSERT INTO `t_position` VALUES (4, 254, 277, '解放路440号');
INSERT INTO `t_position` VALUES (5, 277, 298, '解放路440号');
INSERT INTO `t_position` VALUES (6, 298, 401, '团结路205号');
INSERT INTO `t_position` VALUES (7, 401, 422, '人民西路97号');
INSERT INTO `t_position` VALUES (8, 422, 469, '人民西路97号');
INSERT INTO `t_position` VALUES (9, 469, 501, '龙山路103号');
INSERT INTO `t_position` VALUES (10, 501, 537, '龙山路103号');

SET FOREIGN_KEY_CHECKS = 1;
idstart_mdend_mdposition
1100121龙山路103号
2121172龙山路103号
3172254龙山路103号
4254277解放路440号
5277298解放路440号
6298401团结路205号
7401422人民西路97号
8422469人民西路97号
9469501龙山路103号
10501537龙山路103号

想实现基于position相邻的元素相同的行进行分组,同时获取start的最小值和end的最大值,效果如下

start_mdend_mdposition
100254龙山路103号
254298解放路440号
298401团结路205号
401469人民西路97号
469537龙山路103号

SQL不会写了,求指教

  • 写回答

2条回答 默认 最新

  • 文盲老顾 WEB应用领新星创作者 2023-03-07 10:19
    关注

    start_md 和 end_md 如果可以确保连续,则直接 group 即可

    
    select min(start_md) start_md,max(end_md) end_md,position from `t_position` group by position
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 3月8日
  • 已采纳回答 3月8日
  • 创建了问题 3月7日

悬赏问题

  • ¥15 mmocr的训练错误,结果全为0
  • ¥15 python的qt5界面
  • ¥15 无线电能传输系统MATLAB仿真问题
  • ¥50 如何用脚本实现输入法的热键设置
  • ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
  • ¥30 深度学习,前后端连接
  • ¥15 孟德尔随机化结果不一致
  • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
  • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
  • ¥15 谁有desed数据集呀