非用户列不支持操作?

问题描述 投票:0回答:1

我有以下 SQL 代码:

# does not work
select count(*), count(distinct p) from 
(select *, rowid as p from elephants)zzz

但是我收到以下错误:

Operation Not Supported on Non-User Columns

奇怪的是,这段代码的一部分似乎工作得很好:

# works without errors
select *, rowid as p from elephants

有谁知道我可以做什么来修复这个错误?我尝试使用 CAST 语句将类型更改为整数或 varchar ...我还尝试创建一个 CTE,然后重命名该列以“欺骗”计算机认为这是一个用户列...但我保留遇到同样的错误。

我可以做什么来解决这个问题?

谢谢!

参考资料:

sql netezza
1个回答
0
投票

这应该欺骗优化器......以便 P 不再专门引用 ROWID。只需将 ROWID 值添加 +0 即可。无操作。

select count(*), count(distinct p) from 
(select *, rowid+0 as p from elephants)zzz
© www.soinside.com 2019 - 2024. All rights reserved.