首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >双倍或三倍时间戳问题

双倍或三倍时间戳问题
EN

Stack Overflow用户
提问于 2019-09-28 18:13:51
回答 1查看 63关注 0票数 0

我正在使用SQL助手,我的数据以时间戳的形式从一个巨大的数据库中导入快照。有时,快照每小时会产生多个快照。数据是正确的,多个快照确实会在一小时内不时发生,但并不总是发生。

我把它带到Spotfire中,每小时查看一次,当一小时内发生多个快照时,数据显示为双倍。

我只想每小时显示一个,最好是该小时的最后(最大)时间戳。例如,对于上午7点,数据有一个上午7:10的快照和一个上午7:55的快照

这些都是正确的,但我只想显示最后一个(最大)时间戳,在这种情况下是上午7:55。我不能在Spotfire中解决这个问题,所以我倾向于在SQL中进行修复。我如何才能在每小时只显示1?

EN

回答 1

Stack Overflow用户

发布于 2019-10-03 23:46:46

这与在SQL中类似--使用ranking/rownumber函数。

Spotfire works中基本的Rank方式是Rank(排序列,排序方向,分区列,并列方法)

您需要按日期和小时的组合进行分区,然后按时间戳列降序排序。

因此,标识您想要隔离的行的代码应该是这样的:

代码语言:javascript
运行
复制
Rank([TimestampColumn], "desc", Date([TimestampColumn]), Hour([TimestampColumn]), "ties.method=first")

从这里对它做什么将取决于您计划如何使用数据-例如,您可以使用表达式限制数据,并将上面的代码设置为=1,这将相应地限制您的表(如果您不希望用户意外忘记过滤,这很有用),或者您可以创建一个计算列,将其转换为某种形式的标志,如下所示:

代码语言:javascript
运行
复制
    If(Rank([TimestampColumn], "desc", Date([TimestampColumn]), Hour([TimestampColumn]), "ties.method=first") = 1, "Latest", "Duplicate")

允许您的用户根据此属性进行筛选。这样,他们就可以选择查看额外的行。

但最终,如果您只想看到这些行,而不想使用前面的记录,那么我可能会用SQL来实现,如果您有这种能力的话。这减少了必须加载到分析中的行数。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58145303

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档