S02052
错误代码
S02052
报错信息
The last column for "pivot by" clause must be a partitioning column. RefId: S02052
错误原因
在查询表是分布式表时,如果在 select 子句中使用 asis 函数,pivot by 字段的最后一列必须是分区列。
def createMyTable(n) {
intv = take(1..10, n)
symbol = take(`a`b`c, n)
id = rand(100, n)
strv = take("abs" + string(1..10), n)
doublev = rand(10.0, n)
return table(intv, strv, doublev, id, symbol)
}
// 建库
dbName = "dfs://test"
if (existsDatabase(dbName)) {
dropDatabase(dbName)
}
db = database(dbName, HASH, [INT, 2])
// 建表
n = 100
t = createMyTable(n)
pt = createPartitionedTable(db, t, `pt, `intv)
pt.append!(t)
select asis(doublev) from pt pivot by id, symbol; // 报错
select doublev from pt pivot by id, symbol; // 正常
解决办法
需要将 asis 函数删去。