You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TOP N WITH TIES与UNION结合使用可行吗?报错问题咨询

解决TOP 1 WITH TIES + UNION的SQL错误

你遇到的报错原因很明确:TOP N WITH TIES必须搭配对应的ORDER BY子句使用,而且这个ORDER BY要放在每个用到TOP的子查询内部,不能只在UNION整体末尾添加。

修正后的代码如下,给每个子查询单独添加ORDER BY,确保各自筛选出任务量最高的员工后再合并结果:

-- 管家表中任务量最多的员工
SELECT TOP 1 WITH TIES e.EmpID AS 'EmployeeID', COUNT(ScheduleID) AS 'Task Count'
FROM EMPLOYEE e
JOIN CLEANING c ON e.empid = c.hkid
GROUP BY e.empid
ORDER BY 'Task Count' DESC

UNION

-- 导游表中任务量最多的员工
SELECT TOP 1 WITH TIES e.EmpID AS 'EmployeeID', COUNT(ResID) AS 'Task Count'
FROM EMPLOYEE e
JOIN RESERVATION r ON e.empid = r.guideid
GROUP BY e.empid
ORDER BY 'Task Count' DESC

额外提示:

  • 建议用JOIN语法代替旧的逗号连接表结构,可读性更强。
  • 如果不需要自动去重(比如允许同一个员工在两个表中都是任务量最高),可以把UNION换成UNION ALL,执行效率更高。
  • 每个子查询的ORDER BY是筛选TOP 1 WITH TIES的必要条件,能确保选出所有任务量并列最高的员工,而非仅单个员工。

内容的提问来源于stack exchange,提问作者netorare

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 09:32:52