sql - Redshift : Running query using GETDATE() at specified list of times

标签 sql amazon-redshift getdate

因此,我有一个在 WHEREHAVING 子句中使用 GETDATE() 的查询:

SELECT GETDATE(), COUNT(*) FROM (
  SELECT 1 FROM events
  WHERE (event_time > (GETDATE() - interval '25 hours'))
  GROUP BY id
  HAVING MAX(event_time) BETWEEN (GETDATE() - interval '25 hours') AND (GETDATE() - interval '24 hours')
)

我基本上试图找到相对于当前时间在 25 到 24 小时前具有最新 event_time 的唯一 id 的数量。

问题:我有另一个表query_dts,其中包含一列包含时间戳。我需要运行 query_dts 表中每个条目的时间戳,而不是使用 GETDATE() 在当前时间运行上述查询。有什么想法吗?

注意:我并没有真正将 query_dts 存储在任何地方。我是这样创建的:

WITH query_dts AS (
  SELECT (
    DATEADD(hour,-(row_number() over (order by true)), getdate())
  ) as n
  FROM events LIMIT 48
),

我从 here 得到的

最佳答案

如何完全避免生成器而只是分割间隔:

SELECT
  dateadd(hour, -distance, getdate()),
  count(0) AS event_count
FROM (
       SELECT
         id,
         datediff(hour, max(event_time), getdate()) AS distance
       FROM events
       WHERE event_time > getdate() - INTERVAL '2 days'
       GROUP BY id) AS events_with_distance
GROUP BY distance;

关于sql - Redshift : Running query using GETDATE() at specified list of times,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35986221/

相关文章:

mysql - 是否可以像mysql一样在sql server中实现字符串到日期时间的转换?

mysql - 类别平均价格 SQL 查询

python - 在 S3ToRedshiftOperator 中拉取 xcom 变量时未定义 ti

sql-server - 模拟 SQL Server 实例上的当前日期?

sql - 如何使用 Go 函数更新 PostgresQL 表中的多个列

amazon-web-services - 如何在 AWS Redshift 集群中查找数据库列表

amazon-redshift - 大数据源的 Tableau 数据提取失败

java - Jdatechooser内容

java - 如何从 JSON 对象中获取日期

sql - 奇怪的 SSIS 错误(进程退出代码 255)