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

相关推荐
百***170720 分钟前
MySQL 常用 SQL 语句大全
数据库·sql·mysql
百***659525 分钟前
mysql如何发现慢查询sql
数据库·sql·mysql
资深web全栈开发27 分钟前
PostgreSQL 实战指南(面向 MySQL 开发者)
数据库·mysql·postgresql
油炸小波2 小时前
09-微服务原理篇(XXLJOB-幂等-MySQL)
android·mysql·微服务
周杰伦_Jay2 小时前
【电商微服务日志处理全方案】从MySQL瓶颈到大数据架构的实战转型
大数据·mysql·微服务·架构
合作小小程序员小小店2 小时前
桌面开发,在线%考试管理%系统,基于eclipse,java,swing,mysql数据库。
java·数据库·mysql·eclipse·jdk
vx_bscxy3222 小时前
告别毕设焦虑!Python 爬虫 + Java 系统 + 数据大屏,含详细开发文档 基于微信小程序的民宿预约系统22398 (上万套实战教程,赠送源码)
java·spring boot·mysql·微信小程序·课程设计
chxii4 小时前
第五章:MySQL DQL 进阶 —— 动态计算与分类(IF 与 CASE WHEN)多表查询
数据库·mysql
百***68045 小时前
MySQL四种备份表的方式
mysql·adb·oracle
不会c嘎嘎5 小时前
MySQL -- 库的操作
数据库·mysql