当我运行第一个查询时,一切运行正常:
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)
该错误表明您的子查询不起作用,这很明显,因为您不能在 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)
| 归档时间: |
|
| 查看次数: |
35068 次 |
| 最近记录: |