You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在BigQuery中获取多表不同日期列的最大日期值?

在BigQuery中批量获取多表日期/时间戳列的最大值

首先修正你用来筛选目标表和列的查询(注意BigQuery中字符串值需加单引号,且INFORMATION_SCHEMA的引用要加反引号):

SELECT table_name, column_name
FROM `db.INFORMATION_SCHEMA.COLUMNS`
WHERE data_type IN ('TIMESTAMP', 'DATE')
  AND column_name NOT IN ('ingestion_date')

接下来可以用动态SQL批量生成查询,一次性获取所有目标列的最大值:

DECLARE sql_str STRING;

-- 拼接所有表列的最大值查询语句
SET sql_str = (
  SELECT STRING_AGG(
    FORMAT(
      'SELECT "%s" AS table_name, "%s" AS column_name, MAX(%s) AS max_value FROM `db.%s`',
      table_name, column_name, column_name, table_name
    ),
    '\nUNION ALL\n'
  )
  FROM `db.INFORMATION_SCHEMA.COLUMNS`
  WHERE data_type IN ('TIMESTAMP', 'DATE')
    AND column_name NOT IN ('ingestion_date')
);

-- 执行动态生成的SQL
EXECUTE IMMEDIATE sql_str;

说明:

  • 脚本会自动遍历所有符合条件的表和列,为每个列生成MAX()查询,并用UNION ALL合并结果
  • 结果返回三列:table_name(表名)、column_name(列名)、max_value(该列的最大日期/时间戳)
  • 如果某个表或列无数据,MAX()会返回NULL,可按需添加COALESCE替换默认值

内容的提问来源于stack exchange,提问作者Ilario

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 08:42:36