如何获取记录中列值的最大值?(大查询)

Tai*_*chi 2 sql google-bigquery

我想获取每行的最大值,而不是字段的最大值。例如,当我有一个sample_table这样的时候:

sample_table

|col1|col2|col3|
|--------------|
| 1  | 0  | 0  |
| 0  | 2  | 0  |
| 2  | 0  | 0  |
| 0  | 0  | 3  |
Run Code Online (Sandbox Code Playgroud)

我想要的查询和结果是这样的:

询问

SELECT SOME_GET_MAX_VAL_FUNC(col1, col2, col3) AS max_val FROM sample_table;
Run Code Online (Sandbox Code Playgroud)

结果

|max_val|
|-------|
|   1   |
|   2   |
|   2   |
|   3   |
Run Code Online (Sandbox Code Playgroud)

我要替换一些解决方案SOME_GET_MAX_VAL_FUNC。如果在SQL中几乎可行,那为什么呢?(我是SQL和BigQuery的新手)

注意

  • 的数量col可能很大,例如col1, col2, ... col200。因此使用解决方案CASE对我来说很难。多个列的SQL MAX?

  • 特别是,除最大值以外的其余列均等于0

Yog*_*rma 5

您要GREATEST

SELECT GREATEST(col1, col2, col3) 
FROM table t;
Run Code Online (Sandbox Code Playgroud)