找文章 / 找答案
  • 发帖数17
  • 粉丝0

此人很懒,什么也没有留下

精选问答 更多内容

[数据处理] 如何只展示筛选时间之前最新的数据?

Gnoc铂金一 显示全部楼层 发表于 2023-4-26 16:32:35 |阅读模式 打印 上一主题 下一主题
5
已解决
本帖最后由 Gnoc 于 2023-4-26 16:34 编辑

有以下数据:
用户
总分
时间
A
1
2023/4/12
A
2
2023/4/13
B
21
2023/4/14
B
45
2023/4/15
C
111
2023/4/16
C
222
2023/4/17
C
333
2023/4/18
B
40
2023/4/19
D
12
2022/3/19


想要实现效果:只展示每个用户筛选时间之前最新一条的数据
1. 当截止时间选择2023/4/16
用户
总分
时间
A
2
2023/4/13
B
45
2023/4/15
C
111
2023/4/16
D
12
2022/3/19
2. 当截止时间选择2023/4/20
用户
总分
时间
A
2
2023/4/13
B
40
2023/4/19
C
333
2023/4/18
D
12
2022/3/19

最佳答案

社区管理员
yhdata_lyaa 关注Ta

2023-04-26 16:32:36

第一步 SQL数据集写SQL,例如: 用参数a来过滤时间,需要在数据集给个默认值。 SELECT t1.* FROM bi941.newtable_2 t1 JOIN ( SELECT id, MAX(时间) AS max_timestamp FROM bi941.newtable_2 WHERE 时间
查看完整内容
回复

使用道具 举报

精彩评论4

yhdata_lyaa 显示全部楼层 发表于 2023-4-26 16:32:36
第一步
SQL数据集写SQL,例如:
用参数a来过滤时间,需要在数据集给个默认值。
SELECT t1.*
FROM bi941.newtable_2 t1
JOIN (
  SELECT id, MAX(时间) AS max_timestamp
  FROM bi941.newtable_2
  WHERE <a>  时间<=?{a}</a>
  GROUP BY id
) t2
ON t1.id = t2.id AND t1.时间= t2.max_timestamp;

第二步,新建报告,使用文本参数,取名为a,选择对应日期类型。
就可以参与SQL过滤了。
SQL参与过滤参考https://yonghongtechonline.udesk.cn/question/226409
回复

使用道具 举报

yhdata_yzm 显示全部楼层 发表于 2023-4-26 16:56:27

SELECT *
FROM your_table t1
WHERE t1.timestamp <= your_filter_time
AND t1.id = (
  SELECT MAX(t2.id)
  FROM your_table t2
  WHERE t2.user_id = t1.user_id
  AND t2.timestamp <= your_filter_time
)
```

其中,`your_table` 是你要查询的表,`timestamp` 是该表中表示时间的列,`user_id` 是该表中表示用户的列,`your_filter_time` 是你的筛选时间。

这个查询语句首先筛选出时间在 `your_filter_time` 之前的所有记录。然后,对于每个用户,它只选择其最新的一条记录。为了实现这一点,它使用了一个子查询,在其中选择用户的最大 `id`,并将其与该用户的其他记录进行比较。只有最新的记录会满足条件,因为它具有最大的 `id`。最终,该查询返回每个用户在筛选时间之前的最新一条记录。
回复

使用道具 举报

Gnoc铂金一 显示全部楼层 发表于 2023-4-26 17:01:25
yhdata_yzm 发表于 2023-4-26 16:56
SELECT *
FROM your_table t1
WHERE t1.timestamp

目前需要在BI报告页面实现该功能,筛选时间是文本参数组件控制。
回复

使用道具 举报

Gnoc铂金一 显示全部楼层 发表于 2023-5-9 21:45:08
yhdata_lyaa 发表于 2023-4-26 16:32
第一步
SQL数据集写SQL,例如:
用参数a来过滤时间,需要在数据集给个默认值。

因为数据量过大,如果不设置调度,前端报表基本加载不出来;如果设置调度,在重新选择参数后,必须释放数据集重新跑一遍调度才能生效。请问要怎么解决呢?
回复

使用道具 举报

高级模式
您需要登录后才可以回帖 登录 | 免费注册

  • 官方微信

    欢迎关注永洪服务号!收费为0,价值无限

    扫码关注
  • 新浪微博

    让每位用户轻松挖掘数据价值!

    访问新浪微博
  • 智能客服
50W

会员等你来哦

Copyright   ©2012-2024  北京永洪商智科技有限公司  (京ICP备12050607) 京公网安备110110802011451号 |《永洪社区协议》
返回顶部