问题如下

1.png

最终效果是,1.创建时间优先倒序,2.同班次金额倒序

SQL 帆软用户MJJW81b1Dr 发布于 2023-5-11 17:10 (编辑于 2023-5-11 20:05)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
CD20160914Lv8专家互助
发布于2023-5-11 17:21(编辑于 2023-5-11 20:08)

select t.*,

row_number() over(partition by t.class order by t.class desc,t.sal desc ) sort 

 

 from (

select '5' as id,'李四' as name,1 as class,'2023-05-09' as create_date,9000 as sal 

union all

select '4' as id,'张三' as name,1 as class,'2023-05-08' as create_date,8000 as sal union all

select '17' as id,'a' as name,2 as class,'2023-05-11' as create_date,60000 as sal union all

select '6' as id,'王五' as name,2 as class,'2023-05-10' as create_date,120000 as sal union all

select '7' as id,'赵六' as name,3 as class,'2023-05-11' as create_date,9000 as sal

) t

image.png

  • 帆软用户MJJW81b1Dr 帆软用户MJJW81b1Dr(提问者) 同班级也要按照 金额倒序
    2023-05-11 17:26 
  • CD20160914 CD20160914 回复 帆软用户MJJW81b1Dr(提问者) 排序的字段内外自己要确定哪一个是第一顺序。你要的字段再增加上去
    2023-05-11 17:28 
  • 帆软用户MJJW81b1Dr 帆软用户MJJW81b1Dr(提问者) 回复 CD20160914 不对哦
    2023-05-11 19:46 
  • CD20160914 CD20160914 回复 帆软用户MJJW81b1Dr(提问者) 不知道你最终要什么效果。也不知道你语句是如何写的。把你语句发上来。弄个最终的效果。。
    2023-05-11 19:47 
  • 帆软用户MJJW81b1Dr 帆软用户MJJW81b1Dr(提问者) 回复 CD20160914 最终效果,我上传了图片 Excel with temp as ( SELECT * FROM emp ORDER BY create_date DESC ) SELECT t.*,row_number() over(partition by t.class order by t.sal desc ) sort FROM temp t
    2023-05-11 19:52 
最佳回答
0
shixyLv5见习互助
发布于2023-5-16 18:20(编辑于 2023-5-16 18:24)

用这个呀

with temp as (

select *,

row_number() over(partition by class order by class,sal desc) sort

from emp)

select * from temp order by create_date, sort desc

row_number()是个排名函数,你是针对班级和sal的倒叙做了一个排名

你想用日期和sal排序,可以在后面直接order by, order by后面跟的字段,是你想依次排序的字段;

如果你想以创建日期和sal的倒叙排序,就order by create_date, sort desc

如果你想以创建日期、班级、sal倒叙排序,就是order by create_date, calss,sort desc

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