现有一个表EQP_TRANS_ODS
会记录机台状态,
机况种类:IDLE/DOWN/RUN,
有Start_time,END_TIME,KEEP_TIME;
但是这个表有个问题,每天07:30,会自动截断重新生成一行数据,
例如机况Run时间为Start_time:6:00至End_time:9:00,
到7:30截断,会显示两行,
显示为
Run 6:00-7:30 keep_time:1.5 hr,
Run 7:30-9:00 keep_time:1.5 hr ,怎么通过SQL语法将两行字段,拼接为一行 6:00-9:00 keep_time:3 hr
SQL拼接语法,怎么拼接时间
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- Java智慧阁 2022-07-09 17:33关注
比如当前测试表数据如下:
查询效果如下:
对应测试DDL语句:
CREATE TABLE `eqp_trans_ods` ( `id` int(11) DEFAULT NULL, `type` varchar(24) DEFAULT NULL, `Start_time` time DEFAULT NULL, `END_TIME` time DEFAULT NULL, `KEEP_TIME` float(2,1) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
对应测试DML语句:
-- ---------------------------- -- Records of eqp_trans_ods -- ---------------------------- INSERT INTO `eqp_trans_ods` VALUES (1, 'IDLE', '06:00:00', '07:30:00', 1.5); INSERT INTO `eqp_trans_ods` VALUES (2, 'IDLE', '07:30:00', '09:00:00', 1.5); INSERT INTO `eqp_trans_ods` VALUES (3, 'DOWN', '05:00:00', '07:30:00', 2.5); INSERT INTO `eqp_trans_ods` VALUES (4, 'DOWN', '07:30:00', '09:00:00', 1.5); INSERT INTO `eqp_trans_ods` VALUES (5, 'RUN', '08:00:00', '10:30:00', 2.5); INSERT INTO `eqp_trans_ods` VALUES (6, 'RUN', '10:30:00', '14:30:00', 4.0);
效果执行语句:
SELECT a.type, -- min( a.Start_time ) Start_time, date_format(min(Start_time),'%H:%i') Start_time, -- 取值开始时间 最小值 -- 显示小时和分钟 -- 格式显示日期/时间数据参考:https://www.w3school.com.cn/sql/func_date_format.asp -- max( a.END_TIME ) END_TIME, date_format(max(END_TIME),'%H:%i') END_TIME, -- 取值最大时间 结束时间 sum( a.KEEP_TIME ) KEEP_TIME , -- 求和累计 concat(type,' ',date_format(min(Start_time),'%H:%i'),'-',date_format(max(END_TIME),'%H:%i'),' keep_time',':',sum( a.KEEP_TIME ),' hr') printResult -- 拼接结果 FROM EQP_TRANS_ODS a GROUP BY a.type ORDER BY a.type DESC;
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥200 总是报错,能帮助用python实现程序实现高斯正反算吗?有偿
- ¥15 对于squad数据集的基于bert模型的微调
- ¥15 为什么我运行这个网络会出现以下报错?CRNN神经网络
- ¥20 steam下载游戏占用内存
- ¥15 CST保存项目时失败
- ¥15 树莓派5怎么用camera module 3啊
- ¥20 java在应用程序里获取不到扬声器设备
- ¥15 echarts动画效果的问题,请帮我添加一个动画。不要机器人回答。
- ¥15 Attention is all you need 的代码运行
- ¥15 一个服务器已经有一个系统了如果用usb再装一个系统,原来的系统会被覆盖掉吗