由于内部错误,Redshift 不支持这种类型的相关子查询模式

use*_*464 6 amazon-redshift

当我运行第一个查询时,一切运行正常:

select uid,
(select top 1 city from UserData where UserData.uid = #uids.uid 
group by city)
from #uids;
Run Code Online (Sandbox Code Playgroud)

问题是当我添加时order by count(city),出现错误:由于内部错误,不支持这种类型的相关子查询模式

select uid,
(select top 1 city from UserData where UserData.uid = #uids.uid 
group by city
order by count(city))
from #uids;
Run Code Online (Sandbox Code Playgroud)

Sam*_*raf 0

该错误表明您的子查询不起作用,这很明显,因为您不能在 SQL 的 ORDER 子句中使用函数。您只能在 SELECT 和 HAVING 子句中使用它们。

如果你想 order by count(city),你应该将其添加到带有别名的 SELECT 子句中,并按别名进行排序。所以你的子查询可以是这样的:

(SELECT city, COUNT(*) AS city_count
FROM UserData
WHERE UserData.uid = #uids.uid
GROUP BY city
ORDER BY city_count
LIMIT 1)
Run Code Online (Sandbox Code Playgroud)