mysql group by 分组聚合后,按着聚合的时间进行升序排序,乱序字段组内再排序

业务背景:首先对sd.project_name项目名称进行分组后,但是分组聚合的GROUP_CONCAT的start_time和end_time组合后乱序了,导致的sql结果是这样子的

这个有还无剧场最早的一个场次时间是10:30,按道理讲他应该是排在第一个位置。

但是group by 之后分组就乱序了,因此需要对组内的start_time进行升序排序,

使用GROUP_CONCAT之后然后再使用 ORDER BY sd.start_time ASC SEPARATOR ', '进行排序即可

SELECT

sd.project_name as projectName,

sd.project_type as projectType,

sd.project_time as projectTime, GROUP_CONCAT(DATE_FORMAT(sd.start_time,'%H:%i'),'#',DATE_FORMAT(sd.end_time,'%H:%i') ORDER BY sd.start_time ASC SEPARATOR ', ') as startTime,

IFNULL(sum(pd.book_num),0) as bookNum,

IFNULL(ROUND(sum(pd.check_num)/sum(pd.capacity_num)*100,1),0) as seatRatio

FROM

r_venue_management_scheduling_detail sd

left JOIN r_venue_management_project_day pd ON sd.project_name = pd.project_name and pd.enter_date=CURRENT_DATE()

WHERE

sd.start_time >= '2023-07-25 00:00:00'

AND sd.end_time <= '2023-07-25 23:59:59'

AND sd.dept_id = '001003'

and sd.status=1

GROUP BY sd.project_name

order by sd.project_type,startTime

相关推荐
冰暮流星25 分钟前
sql语句之select语句的基本使用
数据库·sql·mysql
计算机毕设指导61 小时前
基于微信小程序的钓鱼论坛系统【源码文末联系】
java·spring boot·mysql·微信小程序·小程序·tomcat·maven
·云扬·2 小时前
系统与MySQL核心监控指标及操作指南
android·数据库·mysql
霖霖总总2 小时前
[小技巧15]深入解读 MySQL sql_mode:从原理到实践,规避常见坑
sql·mysql
lytao1232 小时前
MySQL高可用集群部署与运维完整手册
运维·数据库·mysql·database
少年做自己的英雄3 小时前
MySQL连接查询优化算法及可能存在的性能问题
数据库·mysql·性能优化·连接算法·nlj
抹茶苹果梨3 小时前
Mysql:简单易懂了解MVCC
mysql
千寻技术帮4 小时前
10349_基于Springboot的万仙山旅游管理系统
mysql·springboot·旅游管理·在线旅游
尽兴-4 小时前
MySQL 中一条 SQL 的执行流程详解
sql·mysql·adb·dba
JAVA拾贝4 小时前
全链路数据监控 Binlog View
mysql·canal·binlog·binlog view·数据链路监控