BigQuery中如何获取每行3个日期列的最大更新日期
在BigQuery中实现该需求非常简单,可直接使用内置的GREATEST函数,该函数支持传入多个同类型值,直接返回其中的最大值,逐行计算三个日期列的最晚更新日期的写法如下:
SELECT ID, GREATEST(UpdateByApp1Date, UpdateByApp2Date, UpdateByApp3Date) AS LastUpdateDate FROM `你的项目ID.你的数据集名.TestTable`
补充说明
- 若三个日期列中存在NULL值,
GREATEST会自动忽略NULL值,返回剩余非NULL日期中的最大值,仅当三个列全为NULL时才会返回NULL。 - 若需要自定义全NULL场景的默认返回值,可搭配
IFNULL函数使用,示例如下:
SELECT ID, -- 三个日期全为NULL时默认返回1900-01-01,可按需修改 IFNULL(GREATEST(UpdateByApp1Date, UpdateByApp2Date, UpdateByApp3Date), DATE('1900-01-01')) AS LastUpdateDate FROM `你的项目ID.你的数据集名.TestTable`
内容的提问来源于stack exchange,提问作者franco pina
相关产品推荐
相关产品推荐

