对于题目中的例子有两种方法可以实现:
* 方法一: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