Mysql排序分类

如图所示,想要在mysql里取得这样的新分类应该怎么写sql语句image.png

FineReport lxy2 发布于 2023-5-12 16:20
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
CD20160914Lv8专家互助
发布于2023-5-12 16:21

你这个新分类是如何来的没有看懂

  • lxy2 lxy2(提问者) 就是要按时间排序,然后按时间顺序下来,如果本行和下一行的分类是一样的就是同一个分类,不然就是新的一个分类序号,以此类推
    2023-05-12 16:29 
  • CD20160914 CD20160914 回复 lxy2(提问者) mysql8里面用窗口函数。如果是不是mysql8的话,这个实现起来麻烦了。要写存储过程。
    2023-05-12 16:31 
  • lxy2 lxy2(提问者) 回复 CD20160914 我其实用存储过程实现了,但是我存储过程里有用到临时表和update临时表,就是用for循环去判断的,现在好像系统用到临时表有时候会导致生产那边卡,所以想来问问大家有没有什么别的方法
    2023-05-12 16:33 
  • lxy2 lxy2(提问者) 回复 CD20160914 噢用的是while,想问下我用while这样的方法去做是对的思路吗
    2023-05-12 16:34 
  • CD20160914 CD20160914 回复 lxy2(提问者) 这个反正我目前对于低版本只能想到存储过程
    2023-05-12 16:34 
最佳回答
0
用户k6280494Lv6资深互助
发布于2023-5-12 16:21(编辑于 2023-5-12 16:24)

select 

类别,

时间,

CASE WHEN 类别= 'A'  THEN 1

         WHEN 类别= 'B'  THEN 2

end as '分类排序'

where 表

GROUP BY

类别,

时间

最佳回答
0
BrmiseLv6见习互助
发布于2023-5-12 18:02

直接写sql,使用开窗函数就行。

image.png

  • 4关注人数
  • 289浏览人数
  • 最后回答于:2023-5-12 18:02
    请选择关闭问题的原因
    确定 取消
    返回顶部