数据行分组

如何将一个不确认数据行数的sql,按金额排序后,前三分之一、中间三分之一、后三分之一在表格中显示不同的颜色,这个sql能直接判断出来吗

FineReport 小枫残月 发布于 2024-6-19 09:41
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共4回答
最佳回答
0
快乐星光Lv5中级互助
发布于2024-6-19 10:18

参考

image.png

最佳回答
0
华莉星宸Lv7高级互助
发布于2024-6-19 09:43

直接在fr里面可以判断

判断行号就行了

  • 小枫残月 小枫残月(提问者) 具体的总行数不知道,怎么判断哪些行号是前三分之一呢
    2024-06-19 09:45 
  • 华莉星宸 华莉星宸 回复 小枫残月(提问者) 你是什么数据库?不同的数据库,在SQL里面获取行号不一样
    2024-06-19 09:58 
  • 华莉星宸 华莉星宸 回复 小枫残月(提问者) 如oracle 获取行号的方法,SELECT ROWNUM, t.* FROM ( SELECT your_column FROM your_table ORDER BY your_column ) t;
    2024-06-19 10:04 
  • 小枫残月 小枫残月(提问者) 回复 华莉星宸 不是只要获取行号,需要通过总行数/3,然后用行号/(总行数/3),就是不知道这个用sql怎么好实现
    2024-06-19 10:10 
  • 华莉星宸 华莉星宸 回复 小枫残月(提问者) 获取行号后,在外面在套一层SQL,不就可以计算了啊,大致写法,写个case when 行号>过总行数/3*2 then 3 when 行号>= 过总行数/3 then 2 else 1 end as aaaa
    2024-06-19 10:19 
最佳回答
0
ID1208Lv6高级互助
发布于2024-6-19 09:49(编辑于 2024-6-19 09:50)

image.png

image.png

image.png

image.png

  • 小枫残月 小枫残月(提问者) 想直接在sql里实现呢,单元格或者图表只需要判断处理好的列为1、2、3对应不同的颜色
    2024-06-19 09:54 
最佳回答
0
yzmZQSy29696569Lv4初级互助
发布于2024-6-19 10:14

SELECT *,CASE WHEN paixu<=hangshu/3 THEN 1

WHEN paixu>hangshu/3 AND paixu<hangshu*2/3 THEN 2

WHEN paixu>=hangshu*2/3 THEN 3 END AS 标记

FROM (

SELECT *,ROW_NUMBER() OVER(ORDER BY 金额) AS paixu,

,COUNT(*) OVER() AS hangshu FROM 表) m

  • 5关注人数
  • 219浏览人数
  • 最后回答于:2024-6-19 10:18
    请选择关闭问题的原因
    确定 取消
    返回顶部