我有以下 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,然后重命名该列以“欺骗”计算机认为这是一个用户列...但我保留遇到同样的错误。
我可以做什么来解决这个问题?
谢谢!
参考资料:
这应该欺骗优化器......以便 P 不再专门引用 ROWID。只需将 ROWID 值添加 +0 即可。无操作。
select count(*), count(distinct p) from
(select *, rowid+0 as p from elephants)zzz