多彩编程 多彩编程MZPH · CODE BLOG
ARTICLE DETAIL

文章详情

深耕前端与后端开发技术的一线实战笔记与踩坑复盘。

帆软看板 - 问题收集

帆软看板 - 问题收集 1、直连模式下ORDER BY不生效在添加 SQL 数据集时如果 SQL 语句中用到了 ORDER BY 语句则该 SQL 数据集的计算模式必须选择「抽取数据」来保存。在直连模式下FineBI 会忽略 SQL 中的 ORDER BY 子句。直连模式的机制直连模式下FineBI 将查询直接下发给数据库但为了优化查询性能FineBI 的直连引擎通常会剥离或重写 SQL 中的排序逻辑因此预览数据会呈现数据库返回的默认随机顺序。可以用 row_number() over()解决核心原理是ORDER BY只是「结果集的展示顺序」是元信息会被直连引擎丢弃row_number() over(ORDER BY ...)是一个计算列它在数据库端就把排序结果固化成了一个真实的数值字段1、2、3…以普通数据的形式返回给 FineBI因此不受 ORDER BY 被剥离的影响。举个例子写法一直连模式下 ORDER BY 失效SELECT city AS 城市, SUM(amount) AS 销售额 FROM t_sales GROUP BY city ORDER BY city写法二用 row_number() over() 生成稳定序号SELECT t.城市, t.销售额, row_number() OVER (ORDER BY t.城市) AS 排序序号 FROM ( SELECT city AS 城市, SUM(amount) AS 销售额 FROM t_sales GROUP BY city ) t返回结果会是这样序号被固化下来无论直连还是抽取都稳定2、组件显示年月并且往前推12个月这里会有问题默认会先走下面的条件数据源中最新的月份是2026-08往前推12个月当我们选择7月份问题就出现了并没有显示去年的8月份数据。也就是筛选条件先过滤2026-08到2025-07的数据然后在过滤2025-07之前的数据这里我们需要这样设置设置两个字段的过滤当我们再次选择2026-07可以看到2025-08的数据出来了我们推测这样设置应该就是先走第一个过滤条件然后再走第二个过滤条件这样就是按顺序进行过滤了。所以如果需要过滤12个月之内的数据需要扩展两个时间字段才行。3、横坐标显示月份有时候横坐标只需要显示月份就行了这里我们添加计算字段这里的指标日期是年月时间类型CONCATENATE(MONTH(${安全环保-万支卷烟综合能耗_指标日期}),月)如下设置就可以显示月份了
返回列表