sql - 如何获取记录中列值的最大值?(大查询)
问题描述
我想获得每行的最大值,而不是字段的最大值。例如,当我有这样的 sample_table 时:
样本表
|col1|col2|col3|
|--------------|
| 1 | 0 | 0 |
| 0 | 2 | 0 |
| 2 | 0 | 0 |
| 0 | 0 | 3 |
我想要的查询和结果是这样的:
询问
SELECT SOME_GET_MAX_VAL_FUNC(col1, col2, col3) AS max_val FROM sample_table;
结果
|max_val|
|-------|
| 1 |
| 2 |
| 2 |
| 3 |
我想要一些解决方案来替换SOME_GET_MAX_VAL_FUNC
. 如果在 SQL 中这几乎是不可能的,为什么会这样呢?(我是 SQL 和 BigQuery 的新手)
笔记
s的数量
col
可能非常大,例如col1, col2, ... col200
. 所以使用的解决方案CASE
对我来说很难。多列的SQL MAX?特别是,除了最大值之外的其余列都等于
0
。
解决方案
你想要GREATEST
:
SELECT GREATEST(col1, col2, col3)
FROM table t;
推荐阅读
- matlab - 如何为绘图的两条曲线添加线性拟合?
- javascript - 为什么 `export * as Name from './module'` 在 TypeScript 中不是一个东西?
- python - 想知道我是否可以制作在 Python GUI 中执行功能的按钮
- c - C中的ASCII艺术循环
- java - SpringMVC 配置
- python - Python程序没有按预期提示用户
- javascript - Basic Paper Rock Scissors 玩家选择返回未定义
- docker - Docker - 在入口点重定向输出
- firebase - Firebase - 无法通过 Google 登录进行身份验证
- jquery - 如何为纯文本电子邮件客户端添加换行符