首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

难住了!Teradata SQL。如何从历史表中为每个随时间重复的组更改拉取最小/最大值?

Teradata SQL是一种关系型数据库管理系统,它提供了强大的SQL查询和数据处理功能。对于从历史表中为每个随时间重复的组更改拉取最小/最大值的需求,可以使用窗口函数和子查询来实现。

首先,我们可以使用窗口函数来为每个组计算每个时间点的最小/最大值。假设我们有一个历史表history_table,包含以下列:group_id表示组的标识,time表示时间,value表示值。

要计算每个组每个时间点的最小值,可以使用以下查询:

代码语言:txt
复制
SELECT group_id, time, MIN(value) OVER (PARTITION BY group_id, time) AS min_value
FROM history_table;

要计算每个组每个时间点的最大值,可以将上述查询中的MIN函数替换为MAX函数。

接下来,我们需要从上述结果中选择每个组每个时间点的最小/最大值。可以使用子查询来实现:

代码语言:txt
复制
SELECT group_id, time, min_value
FROM (
  SELECT group_id, time, MIN(value) OVER (PARTITION BY group_id, time) AS min_value
  FROM history_table
) t
WHERE (group_id, time, min_value) IN (
  SELECT group_id, time, MIN(min_value)
  FROM (
    SELECT group_id, time, MIN(value) OVER (PARTITION BY group_id, time) AS min_value
    FROM history_table
  ) t
  GROUP BY group_id, time
);

同样,如果需要选择最大值,可以将上述查询中的MIN函数替换为MAX函数。

对于Teradata SQL,腾讯云提供了云数据库Teradata版(TDSQL),它是一种高性能、高可靠性的云数据库服务。您可以通过以下链接了解更多关于腾讯云数据库Teradata版的信息:腾讯云数据库Teradata版

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券