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

如何在BigQuery中计算行内最大值并返回目标结果?

在BigQuery中计算行内最大值

原始数据

Column AColumn BColumn CColumn D
A.555045
B.302025

目标结果

Column AColumn B
A.55
B.30

解决方法

方法1:使用GREATEST函数

这是最直接的实现方式,GREATEST函数可接收多个列作为参数,返回其中的最大值。

SELECT
  `Column A`,
  GREATEST(`Column B`, `Column C`, `Column D`) AS `Column B`
FROM
  `你的项目ID.你的数据集ID.你的表名`

如果行内存在NULL值,GREATEST会自动忽略,仅计算非NULL值的最大值。若需要处理全NULL的行,可搭配COALESCE设置默认值:

SELECT
  `Column A`,
  COALESCE(GREATEST(`Column B`, `Column C`, `Column D`), 0) AS `Column B`
FROM
  `你的项目ID.你的数据集ID.你的表名`

方法2:数组+UNNEST+MAX

当需要比较的列数较多时,无需逐个罗列列名,可将目标列转为数组,通过UNNEST展开后取最大值。

SELECT
  `Column A`,
  (SELECT MAX(val) FROM UNNEST([`Column B`, `Column C`, `Column D`]) val) AS `Column B`
FROM
  `你的项目ID.你的数据集ID.你的表名`

这种方式修改列范围时,仅需调整数组内的列名即可,灵活性更高。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 12:33:22