如果进行扩展后多列排序?

QQ图片20210510212211.png

如何实现上图这个效果:先根据日期排序,如果有类似的名称则优先放在一起,比如ccc和以ing结尾的cccing放在一起,请问怎么实现?

FineReport ddjiang1115 发布于 2021-5-15 15:25 (编辑于 2021-5-15 15:34)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
radioliuLv5见习互助
发布于2021-5-16 06:56(编辑于 2021-5-16 09:32)

是不是按照名称归类,然后按照每个类里面的最小时间进行排序?

select a.名称,

   a.时间

  from 表名 as a

  join (select REPLACE(名称,'ing','') as '分类名称',

   min(时间)  as '排序时间'

  from 表名

group by REPLACE(名称,'ing','')) as b

on REPLACE(a.名称,'ing','') = b.分类名称

 order by b.排序时间,b.分类名称

  • radioliu radioliu 有意思,移动端我这边已修改,上面的评论就改成我的了?
    2021-05-16 07:31 
  • ddjiang1115 ddjiang1115(提问者) 回复 radioliu 不是,先按时间排序,然后将类似名称的排在一起
    2021-05-16 10:31 
  • radioliu radioliu 回复 ddjiang1115(提问者) 那你图里第三行第四行的时间不就不对了?
    2021-05-16 13:46 
  • ddjiang1115 ddjiang1115(提问者) 回复 radioliu 没有错啊,ccc和cccing要优先排在一起,这个优先级要高于时间
    2021-05-17 00:07 
  • radioliu radioliu 回复 ddjiang1115(提问者) 那不就对了
    2021-05-17 17:24 
最佳回答
0
axingLv6专家互助
发布于2021-5-15 15:26(编辑于 2021-5-16 07:30)
<p>是不是按照名称归类,然后按照每个类里面的最小时间进行排序?</p><p>select a.名称,</p><p>&nbsp; &nbsp;a.时间</p><p>&nbsp; from 表名 as a</p><p>&nbsp; join (select REPLACE(名称,&#39;ing&#39;,&#39;&#39;) as &#39;分类名称&#39;,</p><p>&nbsp; &nbsp;min(时间)&nbsp; as &#39;排序时间&#39;</p><p>&nbsp; from 表名</p><p> group by REPLACE(名称,&#39;ing&#39;,&#39;&#39;)) as b</p><p>on REPLACE(a.名称,&#39;ing&#39;,&#39;&#39;) = b.分类名称</p><p>&nbsp;order by b.排序时间,b.分类名称</p>
  • ddjiang1115 ddjiang1115(提问者) 你这个不对,日期比名称的优先要高才对
    2021-05-15 15:35 
  • axing axing 回复 ddjiang1115(提问者) 你这个“类似的名称”是怎么判断的,开头相同才算类似?有多少个字符相同才算类似?
    2021-05-15 15:44 
  • ddjiang1115 ddjiang1115(提问者) 回复 axing 比如aaa和aaaing,bbb和bbbing,ccc和cccing,ddd和ddding,eee和eeeing,全部都是以ing结尾的
    2021-05-15 18:09 
最佳回答
0
xiaomingyiLv6中级互助
发布于2021-5-15 15:33(编辑于 2021-5-16 07:30)
<p>是不是按照名称归类,然后按照每个类里面的最小时间进行排序?</p><p>select a.名称,</p><p>&nbsp; &nbsp;a.时间</p><p>&nbsp; from 表名 as a</p><p>&nbsp; join (select REPLACE(名称,&#39;ing&#39;,&#39;&#39;) as &#39;分类名称&#39;,</p><p>&nbsp; &nbsp;min(时间)&nbsp; as &#39;排序时间&#39;</p><p>&nbsp; from 表名</p><p> group by REPLACE(名称,&#39;ing&#39;,&#39;&#39;)) as b</p><p>on REPLACE(a.名称,&#39;ing&#39;,&#39;&#39;) = b.分类名称</p><p>&nbsp;order by b.排序时间,b.分类名称</p>
  • 3关注人数
  • 466浏览人数
  • 最后回答于:2021-5-16 09:32
    请选择关闭问题的原因
    确定 取消
    返回顶部