如何将行计算返回的多个结果存储在不同列中?

请教一下,想实现遍历一个 table 每一行数据,根据每一行的各字段,生成新的多个字段,并保存起来。

比如 inputTable 有4个字段, type, col1, col2, col3 如果 type=`a, 那么就算 col1~col3 的最小值, 最大值;如果 type=`b,就算 col1~col3 的均值,标准差。返回值存储为 newCol1, newCol2, 输出 outputTable。


请先 登录 后评论

1 个回答

Polly

对于题目中的例子有两种方法可以实现:

* 方法一:case 语句(1.30.21/2.00.9 版本开始支持)

select case when symbol=`a then rowMin(price1, price2, price3)  else rowAvg(price1, price2, price3) end as col1, case when symbol=`a then rowMax(price1, price2, price3) else rowStd(price1, price2, price3) end as col2, * from t

* 方法二:iif 函数

select iif(symbol==`a, rowMin(price1, price2, price3), rowAvg(price1, price2, price3)) as col1, iif(symbol==`a, rowMax(price1, price2, price3), rowStd(price1, price2, price3)) as col2 from t


请先 登录 后评论
  • 1 关注
  • 0 收藏,672 浏览
  • saki 提出于 2023-03-22 16:41

相似问题